4

プロジェクトが Component1 の古い凍結バージョン (リビジョン Rev1 など) を使用するが、他のすべてのファイルの現在の (マスター) バージョンを使用するとします。Component1 は、同じリポジトリー内のディレクトリーです。

この場合、GIT の「ファイルセット全体ビュー」は扱いにくいようです。CVS では、単純に Component1 にスティッキー タグを付けて、これらのファイルを Rev1 でフリーズするか、そこでブランチすることさえできますが、他のすべてのファイルは master ブランチにとどまります。

リポジトリは、最新の Component1 を必要とする他のプロジェクトに使用されるため、Component1 への更新を単純にロールバックすることはできません。

1 つの可能性は、Rev1 でブランチを作成することですが、マスターから他のすべてのファイルへの更新を常にマージする必要があります。さらに、これらのマージでは、誤って Component1 への更新をマージしないように細心の注意を払う必要があります。コミットはデフォルトでマージ後に自動的に行われるため、GIT では簡単に行うことができます。

Component1 をサブモジュールとしてマッピングすると、より詳細な制御が可能になりますが、この場合、すべてのファイルが共通のリポジトリを共有しています。

「git checkout <rev> -- Component1」では特定のバージョンのコンポーネントを選択できますが、それを master にコミットしたり、そのようなリビジョン選択を行う master にブランチをマージしたりできません。他のすべてのプロジェクト。

他の提案をいただければ幸いです。

4

1 に答える 1

0

サブツリーを作成できます。ここで説明。http://www.betaful.com/2011/01/i-love-git-subtree/

于 2012-12-23T05:28:06.900 に答える