IntelliJ git 合并工具

IntelliJ git merge tool

现在,当我尝试通过 IntelliJ 解决合并冲突时,我发现这些颜色 - 绿色、蓝色、灰色和红色,如下图所示:

如果我们通过终端git合并,Git合并似乎会自动处理标有绿色、蓝色和灰色的区域。唯一 Git 需要我们意见的地方是标有红色的区域。

那为什么 IntelliJ 合并工具使我们的选择变得复杂? 它应该只显示红色而不应该询问绿色、蓝色和灰色?

这是否意味着我们不能依靠 Git 算法来解决灰色、绿色和蓝色区域?到目前为止,在我对 Git 的整个体验中,我看到人们盲目地相信 Git 合并,并且只试图解决它显示的冲突部分 - 即红色区域 ?

IntelliJ IDEA 的合并工具在工具栏中有"Apply non-conflicting changes"按钮,它会自动合并所有非红色的帅哥。这基本上相当于只查看 Git 命令行合并结果中的冲突。

打开对话框时 IntelliJ IDEA 不自动执行此操作的原因不是因为 Git 的算法不可信,而是因为显示所有已更改的 hunk 更容易理解上下文的上下文导致冲突的更改,并更好地了解如何解决冲突。

而且 IntelliJ IDEA 确实可以对合并结果执行任意编辑 - 中间窗格是完全可编辑的。

似乎 Rubymine/Intellij 不关心 git diff3 配置。

git config --global merge.conflictstyle diff3

是的,自动冲突解决按钮很简洁,但是当我想要精确和简单时,我只需要打开一个文本编辑器。 IDE 合并时非常混乱,因为它显示的冲突比实际多。