在git中合并或重新建立两个分支时,一个文件已被删除而另一个文件已被修改,则git产生冲突。 git status
将文件显示为“由我们删除”或“由他们删除”。
我发现了很多有关如何解决冲突的问题,包括:
但是,大多数答案都假设您已经完全知道冲突是什么,并且只需要告诉git保留或删除文件即可。
您如何找出未删除的文件版本中的更改? git
只是将整个文件保留在工作副本中,并且不标记任何更改。
例如:
develop
上,用户A更改了文件foo.x
feature
上,用户B重构代码,删除文件foo.x
,因为它的功能现在在其他文件中develop
合并到feature
中,并得到标记为deleted by us
的冲突答案 0 :(得分:2)
如果“被我们删除”:
git diff <your-branch>...<branch-you're-merging-to> /path/to/file
如果“被他们删除”:
git diff <branch-you're-merging-to>...<your-branch> /path/to/file
在git-diff
手册页中:
git diff [<选项>] <提交> ... <提交> [-] [<路径> ...]
此表单用于查看包含且直到第二个
的分支上的更改,该更改始于两个 的共同祖先。 “ git diff A ... B”等效于“ git diff $(git merge-base A B)B”。您可以省略 中的任何一个,其效果与使用HEAD相同。
这只会向您显示未删除文件的分支中所做的更改,即,如果删除文件的分支首先对其进行了更改,则这些更改不会反映在差异中。
如果您要重新部署而不是合并,则“被我们删除” /“被他们删除”消息将是相反的,因此请使用其他命令。