我在分支foo
上的git存储库中创建了一个文件master
。
然后,我使用dev
创建一个新分支git checkout -b dev
。
在分支dev
上,我使用bar
将其重命名为git mv foo bar
。
之后,我更改了foo
中的内容并提交了它。
但是,当我结帐分支dev
和git merge master
时, git 不会自动为我合并,并要求我自己合并。
因此,执行foo
后,bar
的祖先是git mv
吗?有没有办法让 git 自动合并?
答案 0 :(得分:2)
正如“git merge with renamed files”中所述,您应该尝试调整重命名阈值:
从git 1.7.4开始,您可以将merge的重命名阈值指定为
git merge -X rename-threshold=25
为了控制25%的相似性已足以考虑将两个文件重命名为候选者 根据案例和
-X ignore-space-change
,这可能会使重命名检测更可靠。
仍然来自Tilman Vogel,当合并未检测到重命名时,脚本git-merge-associate
可以帮助恢复两个文件(一个是另一个的重命名版本)之间的关联。