更新git mv index。

3

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

一些文件已经合并了,但有些没有。特别是我想要的一个git日志功能,可以查看过去dir1/class上发生的更改是否源自dir2/class,但这并没有发生。
实际上帮助我的是:
低重命名阈值(10%的相似度来考虑文件的重命名) 大的merge.renameLimit(在合并期间消耗大量内存)
 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

请参阅下面标记的答案。
1个回答

2
我建议你尝试以下方法:在你要合并的分支中,将 dir1 重命名为 dir2(如果需要可以在新的临时分支上进行操作)。然后将该分支合并到你的主分支中。

很好的建议。我一定会尝试一下。太遗憾了,在这个项目中有很多重命名,并且它们不太容易使用重命名脚本。虽然我担心在新分支上重命名它将使我陷入同样的境地,当我尝试合并所有更改回主分支时;) - Alex
这可能是正确的答案,因此我会将其标记为正确,但实际上帮助我的是减少重命名阈值并增加重命名限制,因为在重构后我有很多重命名,没有任何具体的结构。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接