在 git 冲突中奇怪地关闭差异部分

Strangely closing diff sections in git conflict

从我的分支执行 git pull --rebase origin master 后,我在一些文件中遇到冲突,如下所示:

<<<<<<< 640da0acfa7e7bff40009acf1e5b0eccfae97637                                                                                                                                                          
        def some_func(some_arg):
            some_code                                                                                                                                             

=======                                                                                                                                                                                                   
<<<<<<< ca49b7324540347ba8823072feaa1bd23a5be97d                                                                                                                                                          
>>>>>>> name_of_my_last_commit_on_that_branch

这些部分似乎没有正常关闭。此文件中不再有 <<<<<<======>>>>>>。我该如何考虑?是错误还是我不知道的某些功能?

我正在使用 git 2.21.0.

编辑:我确信在分支的 HEAD 上没有留下冲突标记。

看起来您在之前的提交中提交了一个冲突标记。如果你 运行 git log -p.

你可能会看到它

通过使用 git rebase -i 压缩我之前包含左合并标记的提交和删除它们的提交,问题得到了解决。

我没有意识到 pull --rebase 会一个接一个地应用所有提前提交,所以如果我在过去的某个地方留下并修复了标记,我仍然不得不处理它们。