Git HEAD + commit 相同的合并冲突

Git merge conflicts where HEAD + commit are identical

我只是 运行 一个 git pull origin master 并且许多合并冲突在 HEAD 和上游提交中是相同的:

<<<<<<< HEAD
gem 'fuzzy-string-match'
=======
gem 'fuzzy-string-match'
>>>>>>> 50147a3519be5bc883dabce86525ee4f36640b22

相同情况的文件有几十个,前后完全相同

有谁知道可能导致此行为的原因是什么?或者是否有办法自动合并这些“冲突”?

是因为你有 2 个头部部分 git 不知道哪一个是正确的,这就是为什么他会告诉你冲突在哪里。最好的方法是使用评论,这样他就知道你合并时的区别。

正在自动解决合并冲突 如果您更喜欢其他开发人员的工作而不是您自己的工作,您可以通过优先考虑其他开发人员的工作来提及解决冲突的适当策略。

git pull -s recursive -X theirs <remoterepo or other repo>

或者,简单地说,对于默认存储库:

git pull -X theirs

如果您已经在不使用 theirs 策略的情况下进行了拉取,并且希望在其中一个冲突文件中优先考虑其他开发人员的工作,那么 运行 下面的命令:

git checkout --theirs path/to/file

如果您已经处于冲突状态并希望在所有冲突文件中优先考虑其他开发人员的工作,那么 运行 git 检出和 git添加命令:

git checkout --theirs .
git add .

如果您优先考虑自己编写的代码,那么您应该使用 --ours 而不是 --theirs ,如下所示:

git checkout --ours .
git add .

然而,这太过分了,所以在 运行 之前确保它。

您不能使用“.”并键入文件名代替要签出的点。

您还可以将递归 --theirs 策略选项与 git 合并使用:

git merge --strategy-option theirs