合并不同文件名的Git文件

4
这是我的情况:
我正在修复本地分支中的file1中的错误。我的同事在自己的本地分支中,将file1合并到重构的file2中。他完成了工作,并合并回主分支并推送。现在file1不再存在于HEAD中。
当我进行拉取并尝试将我的file1更改合并回主分支时,会发生什么?Git是否足够智能以应对这种情况,还是我必须手动合并我的更改?

1
创建一个本地分支进行合并,这样你就可以找出问题所在。 - bstpierre
2个回答

5
首先,你不会合并“文件”,而是合并“修订版本”(或者说是开发线)。
其次,git使用基于相似度的启发式算法来“检测重命名”,所以如果“file2”与“file1”足够相似,那么git应该会自动将你和他的更改合并到“file2”中。如果不行,你会得到“CONFLICT(modify/delete)”(我认为),你需要手动解决。

1
我尝试了一下并编写了一个脚本,可以在“CONFLICT(delete/modify)”情况下使生活更轻松。也适用于“CONFLICT(modify/delete)”。请看:https://gist.github.com/894374 - Tilman Vogel

2

这要看情况……是否使用了git mv file1 file2,如果git能够识别它为重命名,则可能会识别这个操作......否则,它可能只会尝试创建一个新的file1。您可能需要进行一些手动合并干预或后续合并补丁。此外,这是Git的最坏情况下,您可以在推送之前回滚合并。


2
无论是否使用了 git mv 命令,都不重要。Git 要么将其识别为重命名操作,要么不识别。 - Cascabel

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