Git は名前の変更を追跡しません
ファイルがありましたdir1/some.class
。私はそれをとしてコピーしdir2/some.class
、コミット+プッシュしました。数週間後、私はそのdir1
バージョンを削除しました。
新しいファイルではなく、移動であるかのように動作するように git を教えることはできますか? したがって、他のブランチからマージする
すべての変更は、実際には? dir1/some.class
dir2/some.class
で試しました
git checkout mybranch
git config merge.renameLimit 100
git merge --no-ff -X rename-threshold=80 master
git config --unset merge.renameLimit
一部のファイルがマージされました。しかし、そうでない人もいます。特に私が欠けているのはdir2/class
、過去に発生した変更を として確認するための git log 機能ですdir1/class
が、それは起こりません。
実際に私を助けたのは
名前変更のしきい値が低い (ファイルの名前が変更されたと見なすには 10% の類似性)
大きな merge.renameLimit (マージ中に大量の RAM を消費する)
git checkout mybranch
git config merge.renameLimit 999999
git merge --no-ff -X rename-threshold=10 -Xignore-space-change master
git config --unset merge.renameLimit
また、以下にマークされた回答も確認してください。