合并冲突错误,当提到的文件没有变化时

Merge conflict error, when there was no change in mentioned file

我有一个站点本地存储库和一个远程存储库。 本地回购包含远程回购 1-2 个月前的内容。

我尝试将全部内容拉入本地存储库。

git pull origin master
From ssh://.../site.git
 * branch            master     -> FETCH_HEAD
...
CONFLICT (add/add): Merge conflict in admin/process_email.php
Automatic merge failed; fix conflicts and then commit the result.

我用P4Merge检查process_email.php,但没有显示冲突,而且根本没有变化,没有区别。

更新:

我明白了

$ git status
On branch master
nothing to commit, working directory clean on both repos. 

我也试过了

$ git pull -X theirs origin/master master

但还是报同样的错误

我想将远程原始仓库与我的本地仓库合并。 我想用远程源回购内容覆盖本地回购,因为远程回购较新,包含最新代码。

2000多个文件有冲突,我查了冲突,内容是一样的。我不想进行手动冲突处理。

我有 autocrlf = 假 在 .gitconfig.

为什么内容完全相同的文件会出现冲突错误?

消息说您有 add/add 冲突,这意味着该文件同时添加到您的分支和您要合并的分支中。这限制了 Git 的合并能力,因为没有共同的祖先(即文件的每一部分都不同,双方都会发生冲突)。在文本编辑器中打开文件,查看是否有冲突标记并解决它们。

运行 git status 将为您提供有关正在发生的事情的更多信息。

一旦您对文件的内容感到满意,运行 git addgit commit.

最终解决了问题,基于以下线程中使用的解决方案:

How to handle/fix git add/add conflicts?

# moved all files from the local workdir to another directory.
mv /workdir/* /old_content

# commit this change
git commit -m 'Resolve git Add/Add branch merge conflict by deleting conflicted folder and files in myconflictedfolder'

# do merge from remote
git pull origin master

拉取成功,不再有冲突。

我现在可以覆盖 old_content 目录,如果需要,然后提交。

此致, 康拉德

如果有人强行按下遥控器,也会发生这种情况。 快速修复是在您的本地硬重置,然后 pull

  • git reset --hard origin/master
  • git pull

还应该避免git强制推送。