Git 不跟踪重命名
我有一个文件dir1/some.class
。
我将其复制为 dir2/some.class
并提交 + 推送。
几周后,我删除了 dir1
版本。
我可以教 git 像移动一样而不是新文件吗?
因此,我将从其他分支 merge 到 dir1/some.class
的所有更改实际上会 merge 到 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
一些文件被 merge 了。但有些人没有。特别是我缺少的是 git 日志功能,可以查看 dir2/class
的更改起源于过去的 dir1/class
,但这并没有发生。
真正帮助我的是
低重命名阈值(考虑重命名文件的相似度为 10%)
较大的 merge.renameLimit( merge 时消耗大量 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
另请查看下面标记的答案。
最佳答案
我会尝试这样做:在您要 merge 的分支中,将 dir1
重命名为 dir2
(如果需要,您可以在新的临时分支上执行此操作) .然后将其 merge 到您的主分支中。
关于git - 更新 git mv 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997268/