如何处理/修复git添加/添加冲突?

时间:2013-10-20 08:29:14

标签: git

我不确定何时发生此错误,我在google中找不到任何描述。

所以我的同事们在branch1上提交了一些新文件并更改了文件。然后我得到了这些更改并将它们合并到我的分支(branch2)但不使用git merge但手动使用超比较(我知道这是一种不好的手动合并的做法)。但是,在手动合并它们并复制粘贴我的分支中的新文件之后,我将工作提交到branch2。但是,现在,当他们尝试使用git merge origin / branch2从我那里获得一些更改时,他们会在最初添加的新文件上收到大量的git“添加/添加”冲突。

有人可以告诉我为什么git会将这些文件视为冲突,尽管它们是相同的吗?这些冲突应该如何处理?

2 个答案:

答案 0 :(得分:34)

你得到 CONFLICT(添加/添加):合并冲突...... 冲突,因为这些文件实际上并不相同。您可以使用diff命令查看差异,例如:

git diff branch1 branch2 -- path/to/file

其中branch1branch2是您要比较的分支的名称。

或者,当您处于冲突状态时,在失败的git merge之后立即查看区别的更简单方法,您可以简单地运行不带参数的git diff,它将显示冲突区域。< / p>

要解决此类冲突,您必须确定哪个分支具有正确的内容。您可以通过从相应的分支中签出文件来完成此操作,例如:

git checkout name_of_branch path/to/file

有时,正确的内容是两个文件的混合。在这种情况下,您必须手动解决,可能通过使用git diff命令研究差异,如上例所示。

长期解决方案是避免对不同分支中的相同路径进行冲突更改,这通常是协作者之间的任务共享/通信问题。

答案 1 :(得分:6)

我有一个git(添加/添加)冲突。来自Janos的信息提供了解决方案所需的洞察力。文件“看起来”相同,但我的文件冲突文件夹在一个分支上添加了664的权限,在另一个分支上添加了755的权限。使用 git status 显示了文件之间的差异。

解决冲突的步骤

git merge --abort
rm -rfv myconflictedfolder
git commit -m'Resolve git Add/Add branch merge conflict by deleting conflicted folder and files in myconflictedfolder'
git merge mybranch