3

Git 不跟踪重命名

我有一个文件dir1/some.class。我将其复制为dir2/some.class并提交+推送。几周后,我删除了该dir1版本。

我可以教 git 像移动而不是新文件一样行事吗?因此,我将从其他分支合并的
所有更改实际上都会合并到? dir1/some.classdir2/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 log 功能,可以查看dir2/class源自过去的更改dir1/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

另请查看下面标记的答案。

4

1 回答 1

2

我会试试这个:在您要合并的分支中,重命名dir1dir2(如果需要,您可以在新的临时分支上执行此操作)。然后将其合并到您的主分支中。

于 2012-10-21T14:57:34.347 回答