2

ベンダー ブランチを追跡する古い CVS リポジトリを git に変換しようとしていますが、マージの問題が発生しています。

リポジトリは次のように構成されています。

dir1/
dir2/

dir2 は上流のブランチから取得されます。アップストリームは既に git に変換されており、リポジトリの dir2 は彼らの git リポジトリのルートです。それらをリモートとして追加し、ルートをサブディレクトリ dir2 にマージしたいと考えています。

単純なマージは機能しません。git はそれらのルートをルートとして扱い、共通のファイルを見つけません。

サブツリーのマージは機能しません。既存のディレクトリにサブツリーをマージすることはできません。サブツリー マージ戦略ガイドの使用方法に従いましたが、このコマンドは失敗します。

git read-tree --prefix=dir2/ -u upstream/master

問題は、dir2 に既に存在する「競合する」ファイルを検出することです。ファイルが存在することはわかっています。それらのファイルをマージしたいのです。

アドバイスをいただければ幸いです。

4

1 に答える 1

2

秘訣は、subtree オプションを使用して通常の再帰的なマージを行うことです。

git merge -s recursive -Xsubtree=dir2 upstream/master
于 2010-09-02T23:54:37.473 に答える