Git:BranchまたはFork?


17

2つのバージョンを持つゲームプロジェクトがあります。

  1. ゲームのシンプルなバージョン、コア。
  2. ゲームの高度なバージョン。

私は自分の公開リポジトリに最初のバージョンがあり、私だけがそれに取り組んでいます。2番目のバージョンについては、私の2人の友人と私がそれに取り組みます。重要な部分は、2つのバージョンをリポジトリに残すことです。

私はこれにブランチを使用するかもしれないと考えましたが、この質問とその答えを考慮すると、バージョン管理の観点からそうするのは良い習慣ではありません。私が知る限り、自分のリポジトリをフォークすることはできません。

ここで私のオプションは何ですか?リポジトリに両方のバージョンを保持するにはどうすればよいですか?


3
フォークはブランチであり、別の場所に保存されています。

@MichaelTわかりました。分岐は、分岐のように、ある時点でマージされることを意図していますか?
バラキレックス14

22
Forkはgitコンセプトであり、gitコンセプトではありません。単にクローンを作成してアカウントに追加します。ですから、クローンはあなたが探しているものです。stackoverflow.com/questions/6286571/git-fork-is-git-clone
pdr 14

@Varaquilex Way両方のバージョンを単一のリポジトリに保持する必要がありますか?またfork、リポジトリを作成すると、アカウントに新しいリポジトリが作成されます。
マフディ14

1
シンプルモードまたはアドバンスモードで実行できるバージョンが1つだけではないのはなぜですか?もちろん、コードの一部は単純にのみアクティブになり、一部は高度にのみアクティブになりますが、多くの部分が共有されると思います。
-bdsl

回答:


11

私には、2つのブランチではなく2 つのリポジトリが必要なようです。ブランチは、最終的にそれらを残りのコードとマージするために、単一のリポジトリ内で変更を処理するメカニズムです。

本当に同じコードベースの両方のバージョンを同じリポジトリに保持したい場合、唯一の選択肢はブランチに行くことですが、前述のように、ブランチの主な目的は特定のコミットをある方法で分離することです開発期間中は他のコードと競合せず、準備ができたらマージします。

リポジトリに2つのわずかに異なるブランチがある場合があります。たとえば、同じソースコードの32ビットバージョンと64ビットバージョンがあります。


6

「クローンを作成するか、分岐するか」という質問に対する答えは、「このプロジェクトの自分の個人用バージョンが必要ですか?」という質問に対する答えとまったく同じです。yes =フォーク、no =リポジトリのクローンを作成します。

gitでは、ブランチは一時的なものであることが多く、削除される可能性がある軽量のものです。(github上の)フォークは、以前のプロジェクトに基づいた新しいプロジェクトです。チームメンバーとして作業を行うには、リポジトリを複製します。

多くの公開プロジェクトでは、作業の変更をメインプロジェクトから除外するためにプロジェクトを分岐させています。

フェーズ2では、プロジェクトをフォークしてから、作業中のコンピューターにクローンを作成し、友達に同じことをさせます。


自分のプロジェクトをフォークするにはどうすればよいですか?
バラキレックス14

githubでリポジトリを選択し、フォーク(右上のボタン)をクリックします
DwB

私はそれを行う方法を知っています、それはあなたがあなた自身のプロジェクトをクローンしようとするとき、あなたがリフレッシュボタンを押したように、あなたは単にリポジトリにリダイレクトされます。独自のプロジェクトをforkしようとした後、リポジトリを参照すると、追加のリポジトリはリストされません。新しいレポを作成し、フォークしたい他のレポの内容をコピーして、そこにいる他の人と作業を続けます。
バラキレックス14年

0

本当に欲しいと思うのはサブモジュールです。最初のリポジトリ(プライベートシンプルリポジトリ)を作成し、それをサブモジュールとしてアドバンストバージョンリポジトリに追加すると、プライベートシンプルリポジトリを開発するときに、アドバンストリポジトリ内のサブモジュールへの変更を追跡およびプルできるはずです。


1
数人の人が-1ライアンの応答に時間を取ったが、なぜコメントを提供するのに時間をかけなかった、そしてこの行動はSOのガイドラインの精神に反する。OPの質問で、「コア」が両方のツリーで同一であり、コアの周りに「単純な」ラッパーと「高度な」ラッパーの両方がある場合、この答えは少なくとも合理的です。
スコットプライヴ

私は賛成しましたが、おそらくサブモジュールが良い理由と、それがどのように機能するを説明するあなたのような説明を含めるべきです。共通コードをサブモジュールとして含めることができるライブラリに分割することは良い考えですが、それを行うことを指定しないと、サブモジュールの提案がすぐに意味をなさないように見えます。
ショーンバートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.