我正在尝试通过实时项目学习 Fugitive,特别是解决合并冲突,因为我发现手动执行此操作非常乏味。我不知道这是否是一个有效的问题,因为我无法在我正在使用的 repo 之外重现效果,而且我以前从未见过它。
无论如何,Git 正在报告合并冲突。但是,当我去编辑包含冲突的文件时,我滚动到 Git 添加的用于标记冲突的注释(顺便说一下,这些注释是什么?)它们是相同的。像这样的东西:
<<<<<<< HEAD
These are identical
=======
These are identical
>>>>>>> merge-branch
它们完全相同。一个或另一个中没有异常的空白,没有看起来相同的奇怪 Unicode 字符,等等。字节对字节相同。因此,Fugitive/vimdiff 不起作用:它检测到的唯一区别是那些带内注释,因此执行:diffget
或:diffpull
只是删除注释。因为注释被适当地分开,它们被分开处理,所以必须单独做每一个,你最终会得到这个明显不正确的结果:
These are identical
These are identical
起初我以为注释被意外提交到其中一个分支中——这是我能想到的唯一解释——但是不,它们无处可见。每个分支中的文件并不完全相同,但它们没有冲突的差异。
很明显,Git (2.28.0) 错误地标记了冲突,而 Vim/Fugitive 工作正常。这里出了什么问题?