1

別々に維持されている 2 つのライブラリを使用するプロジェクトがあります。ライブラリが変更されるたびに手動でファイルをコピーするという混乱を避けるために、github のこの例を使用して 2 つのサブツリーを作成することができました。

この作業ディレクトリのルートに独自のコードがあります。また、他の 2 つのレポのサブツリーとしてfoolib/andを持っています。barlib/マスターの代わりにバージョン 1.20 の foolib を使用できるかどうかを確認したいとします。では、1.21 の方が優れているかどうかを確認したいかもしれません。私の考えでは、そうするならgit checkout foolib-1.20バージョン 1.20 のコードを入れるfoolib/つもりです。そんなことはありません。代わりに、作業ディレクトリ全体が folib 1.20 に置き換えられます。これはあまり役に立たず、 の有用性を否定しているようですgit subtree

4

1 に答える 1

1

ライブラリの特定のコミットを参照する必要がある場合は、submodulesを使用することをお勧めします。

そうすれば、親ディレクトリは、それらのライブラリ リポジトリへの参照と、それらの正確なコミットへの参照を記録できます。
ライブラリを作業ツリーから直接変更することを妨げないことに注意してください (これらのライブラリをコミットしてアップストリーム レポジトリにプッシュし、親レポをコミットする場合: 「サブモジュールの本質」を参照してください)。

ただし、サブモジュールにはいくつかの落とし穴が含まれる場合があります (「git サブモジュールがどのように機能するか」を参照してください)。

于 2012-09-28T06:13:25.683 に答える