我不确定这个错误是什么时候发生的,我在google中没有找到任何描述。
所以我的同事在 branch1 上提交了一些新文件并更改了文件。然后我得到了这些更改并将它们 merge 到我的分支(branch2)但不使用 git merge 而是手动使用 beyond compare (我知道手动 merge 是一个不好的做法)。然而,在手动 merge 它们并将新文件也复制粘贴到我的分支之后,我在 branch2 中提交了工作。但是,现在,当他们尝试使用 git merge origin/branch2 从我那里获得一些更改时,他们在最初添加的新文件上收到了很多 git“添加/添加”冲突。
谁能告诉我为什么 git 将这些文件视为冲突,尽管它们是相同的?又该如何处理这些冲突?
最佳答案
您得到 CONFLICT (add/add): Merge conflict in ... 冲突,因为文件实际上并不相同。您可以使用 diff
命令查看差异,例如:
git diff branch1 branch2 -- path/to/file
其中 branch1
和 branch2
是您要比较的分支的名称。
或者,一种更简单的查看差异的方法,在 git merge
失败之后,当你处于冲突状态时,你可以简单地运行 git diff
不带参数,它将揭示冲突地区。
要解决此类冲突,您必须决定哪个分支具有正确的内容。您可以通过从适当的分支 check out 文件来做到这一点,例如:
git checkout name_of_branch path/to/file
有时正确的内容是两个文件的混合。在这种情况下,您必须手动解决,可能通过使用 git diff
命令研究差异,如上例所示。
长期的解决方案是避免在不同分支中对相同路径进行冲突更改,这通常是协作者之间的任务共享/沟通问题。
关于git - 如何处理/修复 git add/add 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475387/