質問
Gitを使用してプロジェクトを管理します。
各プロジェクトには「コア」があり(プロジェクトを構築した人物のフレームワークのように)、各プロジェクトには少なくとも2つのリモートブランチがあります。
- そのコアフレームワークの1リポジトリ。
- 1クライアントプロジェクトごとのリポジトリ。
モジュールもあります。各モジュールには、基本的な関数を含むコアがあり、各クライアントのベースから各モジュールをパーソナライズします。
- そのため、各クライアントプロジェクトに含まれるサブモジュールがあります
- しかし、サブモジュールの個人化部分を処理する方法を理解することはできません。
特定のクライアントプロジェクトでのみ使用する必要があるサブモジュールに新しいファイルを追加したい場合、GITはどのように役立ちますか?
Thosesファイルはメインプロジェクトのために人物化されているため、最良のケースは、クライアントプロジェクトブランチのサブモジュール内に含まれるいくつかのファイルをコミットすることですが、各サブモジュールが独立しているため、できないように見えます。
詩:SmartGitを使用します。
解決
これは、git-subtree(合併)を使用できるシナリオです
リポジトリの他のプロジェクトに変更を加えた場合、プロジェクトからマージしたい場合があります。これは、サブツリーを使用して可能です。ツリーのパスをシフトし、ツリーの関連部分のみをマージできます。
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
サブツリーマージのアイデアは、2つのプロジェクトがあり、プロジェクトの1つが他のプロジェクトをサブディレクトリにマッピングし、その逆も同様です。サブツリーマージを指定すると、Gitは1つが他のサブツリーであり、適切にマージされていることを理解するのに十分賢いです。それは非常に驚くべきことです。
http://progit.org/book/ch6-7.html
しかし、私はあなたがサブモジュールを使用し、そこから離れないようにしたいと思います。
他のヒント
各サブモジュールが独立しているため、私はできません。
サブモジュールは「独立」ですが、個々のリポジトリとして独自のコミットとブランチがあるため、サブモジュールは「独立」ですが、そのサブモジュールでクライアントプロジェクトブランチを定義できます。
そのブランチは、両方のレポで行われたクライアントプロジェクトに固有の変化を分離するために、メインクライアントプロジェクトリポジトリとコアサブモジュールで定義されます。
コアサブモジュールで行われたこれらの変更を押し戻すと、クライアントの親レポで使用されているクライアントブランチの名前と一致するクライアントプロジェクトブランチでそれらをプッシュします。
要するに、命名規則は、多くのクライアントプロジェクトリポジトリによって使用および共有されるコアサブモジュールで行われた小さな特定の変更を分離するのに役立つ可能性があります。