プロジェクトが Component1 の古い凍結バージョン (リビジョン Rev1 など) を使用するが、他のすべてのファイルの現在の (マスター) バージョンを使用するとします。Component1 は、同じリポジトリー内のディレクトリーです。
この場合、GIT の「ファイルセット全体ビュー」は扱いにくいようです。CVS では、単純に Component1 にスティッキー タグを付けて、これらのファイルを Rev1 でフリーズするか、そこでブランチすることさえできますが、他のすべてのファイルは master ブランチにとどまります。
リポジトリは、最新の Component1 を必要とする他のプロジェクトに使用されるため、Component1 への更新を単純にロールバックすることはできません。
1 つの可能性は、Rev1 でブランチを作成することですが、マスターから他のすべてのファイルへの更新を常にマージする必要があります。さらに、これらのマージでは、誤って Component1 への更新をマージしないように細心の注意を払う必要があります。コミットはデフォルトでマージ後に自動的に行われるため、GIT では簡単に行うことができます。
Component1 をサブモジュールとしてマッピングすると、より詳細な制御が可能になりますが、この場合、すべてのファイルが共通のリポジトリを共有しています。
「git checkout <rev> -- Component1」では特定のバージョンのコンポーネントを選択できますが、それを master にコミットしたり、そのようなリビジョン選択を行う master にブランチをマージしたりできません。他のすべてのプロジェクト。
他の提案をいただければ幸いです。