0

私は、オープン ソース プロジェクトの上に構築されたソフトウェアを開発していますが、独自の変更がいくつか含まれています。最近、多数のファイルを移動したオープン ソース プロジェクトに大きな更新がありました。例えば:

app/models/my_model.rb --> app/models/namespace/my_namespaced_model.rb

移動されたファイルは多数あり、中には多くの変更が加えられたものもあります。したがって、gitはファイルをマージしていませんが、古いファイルが「それらによって削除された」と言って、マージの競合としてマークしています。問題は、ファイルが削除されて新しいファイルが作成されたと考えるのではなく、ファイルが移動されたことをgitが認識できるように、変更が少し少ないだけであれば、ほとんどの変更を簡単に整理できると思います。現状では、すべての古い変更を新しいファイルに手動で適用する必要があるようです。

だから私の質問は、ファイルが自動的に理解できないときに、ファイルが移動されたことをgitに強制的に認識させる方法はありますか?

4

1 に答える 1

1

git mergeがデフォルトで使用する再帰的戦略には、ヘルプに変更できる可能性のある「rename-threshold」オプションがあります。最適な設定を見つけるために実験する必要があるかもしれません。

git merge -X rename-threshold=70 mybranch

設定はと同じ効果がgit diff -Mあり、マンページで説明されていgit diffます。

于 2012-04-04T18:16:15.863 に答える