2016-07-21 9 views
3

私はGitを初めて使用しています。私はそれを使って私の最初のプロジェクトに最適な戦略を確信していません。Git:reposを作成するためのベストプラクティス

/src 
    /base/forms 
    /base//masks 
    /base/logics 
    /base/communication 
    /prj/A 
    /prj/B 
    /prj/C 

srcはソフトウェアです。それは3つのプロジェクト(A、B、C)で使用されています。すべてのプロジェクトは少し異なります。しかし、その違いはすべて/ prj/Xのコードで扱われます。/baseのコードは同じです。

これで、ベースモジュール(フォームなど)を更新する必要がありますが、prj Bのみを更新する必要があります。数週間後にはすべてのprjになります。

私のgitを整理する最良の方法は?

それにanythinkを持つ1つの大きなレポ(src)?

またはセクションごとのレポ(base/prj)?

またはdir(ベース/フォーム、ベース/マスク、... prj/A、prj/B、...)あたりのレポ?

答えたいと思う私はgitで少し経験が必要ですが、私がすでに言ったように私はそれに新しいです。

ありがとう!

答えて

0

私は、特定のバージョンごとに1つのレポを使用し、ベースオブジェクトに対して1つのレポを使用することをお勧めします。

それぞれの特定のレポでは、サブプロジェクトを使用して基本プロジェクトをプルします。これにより、特定のモジュールごとにベースモジュールの「どのバージョン」が引き込まれるかを厳密に制御することができます。この「構造」を持つ

forms 
---A---B---C---D 
masks 
---X---Y---Z  

/prj/A 
---Q---W---E---R 
with 
/prj/A/base/forms 
---A---B---C 
/prj/A/base/masks 
---X---Y 


/prj/B 
---B---N---M 
with 
/prj/B/base/forms 
---A---B 
/prj/B/base/masks 
---X---Y---Z 

あなたはまだ、各サブモジュールごとに異なるコミットをチェックアウトし、それぞれがすることが可能であるとして、それらを上に移動することができます。各構成は、各基本プロジェクトの現在のバージョンとコードで自己文書化されます。あなたはすべての上に持っているように、

も各/ PRJ /プロジェクトのサブモジュール/ wのトップレベルのsrcプロジェクトを持つ価値があるかもしれないバージョン履歴

など

/src HEAD 
master A---B---C 
/src/prj/A Q---W---E 
/src/prj/B B---N 

then possibly 
/src 
master A---B---C---D 
/src/prj/A Q---W---E 
/src/prj/B B---N---M 

then possibly 

/src 
master A---B---C---D---E 
/src/prj/A Q---W---E---R 
/src/prj/B B---N---M 
0
「これはこれで動作します」

あなたはどの言語を使っているのかわかりませんが、3つのプロジェクトごとにgit repoを使用し、共通のベースコードを1つrepoする必要があります。

次に、その共通コードを個々のプロジェクトのそれぞれにインポートするだけです。それらのうちの1つだけに変更を導入する必要がある場合は、特定のバージョンをインポートすることができます

関連する問題