web-dev-qa-db-ja.com

gitで異なるディレクトリ階層を持つ2つのブランチをマージする方法は?

WebアプリケーションプロジェクトでMavenを使用し始めたため、ディレクトリ階層が変更されました。 Maven統合用の新しいブランチを作成しました。これで、古いディレクトリ階層とmavenディレクトリ階層を持つ2つのブランチができました。両方のブランチに新しいコミット(バグ修正と新機能)が追加されました。

古いブランチを取り除き、その変更をMavenブランチにマージしたいと思います。 Gitマージは、無数の競合をもたらし、解決できないように感じます。これはファイルパスが変更されたためだと思います。

このマージにアプローチする最良の方法は何ですか?

60
anssias

このマージのためにmerge.renameLimitを高い値に設定してみてください。 gitは名前の変更を検出しようとしますが、O(n ^ 2)の処理時間が必要なため、ファイル数がこの制限を下回っている場合のみです。

git config merge.renameLimit 999999

その後、完了したら:

git config --unset merge.renameLimit
141
Robie Basak