【问题标题】:How to handle/fix git add/add conflicts?如何处理/修复 git add/add 冲突?
【发布时间】:2013-10-20 08:29:14
【问题描述】:

我不确定这个错误是什么时候发生的,我在google上没有找到任何描述。

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

谁能告诉我为什么 git 将这些文件视为冲突,尽管它们是相同的?又该如何处理这些冲突?

【问题讨论】:

  • git(添加/添加)冲突的用例之一可能是文件的模式更改。一个分支中的受影响文件可能与另一个分支具有不同的权限。

标签: git


【解决方案1】:

您会得到 CONFLICT (add/add): Merge conflict in ... 冲突,因为文件实际上并不相同。您可以使用diff 命令查看差异,例如:

git diff branch1 branch2 -- path/to/file

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

或者,一种更简单的查看差异的方法,当您处于冲突状态时,在失败的git merge之后,您可以简单地运行git diff而不使用参数,它会显示冲突区域。

要解决此类冲突,您必须确定哪个分支具有正确的内容。您可以通过从适当的分支签出文件来做到这一点,例如:

git checkout name_of_branch path/to/file

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

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

【讨论】:

  • 感谢@AndreasFester,我在最近的 Git 版本中看到了同样的情况。现在改进我的帖子。
【解决方案2】:

我遇到了 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

【讨论】:

    猜你喜欢
    • 2020-03-02
    • 2018-07-09
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2013-07-17
    • 2017-07-14
    • 2020-08-11
    相关资源
    最近更新 更多