git - 如何处理/修复 git add/add 冲突?

标签 git

我不确定这个错误是什么时候发生的,我在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

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

或者,一种更简单的查看差异的方法,在 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/

相关文章:

Git:在 merge 期间获取我们/他们的文件内容

Git signed-off-by 自定义格式

git - 在 Visual Studio 2015 中如何反转/撤消 Git 中的提交?

git - 自签名 SSL 证书与 Windows Server 2012、Bonobo Git 服务器一起使用

git子模块添加错误: does not have a commit checked out

git - 我可以 merge 两个具有相似内容但不共享任何祖先的 Git 存储库吗?

git - 主 git 存储库中有多个 GitBooks?

git - 如何将单个提交归因于多个开发人员?

git - 无法在我的 ubuntu 机器上安装 linuxbrew

git - 致命的 : failed to read object X Input/output error fatal: index-pack failed - Git pull with Dropbox