2

私はGitサブツリー戦略の使用を理解しようと奮闘しています。私の意図は、いくつかの異なるレポをまとめて、傘のレポの下にある小さなおもちゃのレポのファミリーにすることでした。ここで詳しく説明されているサブツリー戦略を使用しています:http://help.github.com/subtree-merge

ルートからではなく、これらのサブツリーの1つからブランチを作成したいことをGitに納得させようとして、髪の毛を抜いています。サブツリーにcdしてブランチを作成してから、ルートに戻ってcdすると、ルートからgit branchを実行すると、ブランチがルートで作成されたことが明確に示されます。はぁ。

私はgit/githubが大好きですが、この一見日常的なタスクが正しく機能するようになるのは腹立たしいことです。

誰かが私を教えてくれませんか?

4

2 に答える 2

5

gitは「全体」のツリーレベルでのみ機能するため、、などの作業ツリー操作のどこにいてもbranch、すべてルートレベルで機能します。checkout <branch>commit

サブツリーマージ戦略は、あるブランチがファイルのサブツリーをリポジトリ内の別の場所に移動し、別の側が元の場所にあるそれらのファイルに変更を加えたリポジトリがある場合に役立つマージ戦略です。これは、通常のマージ戦略でより多くの競合が発生したり、ファイルが間違った場所に残されたりするように、これら2つの操作をマージするのに役立つように設計されています。

サブツリーのマージ戦略は、gitの「ツリー全体」の操作が機能する方法とは関係がないため、リポジトリの1つのサブツリーにすぎないブランチを作成する場合は、ブランチしてから、他のサブツリーを削除して新しいコミットを行う必要があります。関心のあるツリーがルートレベルに移動しました。

ただし、使用パターンを考えると、サブモジュールについて長い間読んでおくことをお勧めします。それはあなたが達成しようとしていることに合った機能を提供するかもしれません。

于 2009-10-11T19:25:40.000 に答える
3

apenwarrのgit-subtreeをお勧めします:http: //github.com/apenwarr/git-subtree。うまくいけば、それはある時点でgit自体に追加されます。

于 2010-04-20T16:31:53.410 に答える