使用 3-way 视图新交互

集成方式

只需要安装 git 插件即可

如果安装 1.68.1 版本,则需要配置设置项 git.experimental.mergeEditortrue 如果安装 1.69.0 以上版本,则需要配置设置项 git.mergeEditortrue

配置完成后在 scm 面板的 merge change 视图直接打开冲突的文件,就能使用到 3-way 交互

先看看效果

3-way

如何使用 3-way merge editor 新交互来解决代码冲突

截屏2023-02-06 15.55.34.png

3-way merge editor 提供了更直观更丰富的代码冲突解决交互,主要由三个窗口组成

  • 左侧编辑器显示当前本地磁盘文件的只读副本
  • 右侧编辑器显示远程仓库传入的文件只读副本
  • 中间编辑器显示两个冲突分支的共同祖先 base 分支的可读写文件,所有的解决冲突交互结果都在中间视图展示
3-way merge editor 是借助了 git 本身的 diff3 特性,向你展示了你的代码文件为什么会发生冲突,并将文件的所有代码内容改动(不管这个改动有没有冲突)都展示出来。

而旧版的解决冲突,他只是把哪里有冲突的改动给你展示了出来,并默认将 incoming 的传入文件其他未发生冲突的地方给自动 merge 了。

所以你在 3-way 视图当中会看到,没有冲突的地方也会有交互的操作,这是必要的操作步骤

操作步骤

1. 点击源代码管理面板内的冲突文件将弹出 3-way merge editor 面板

2. 要解决冲突,可以通过**操作项(接受 >> 或 忽略 x)**来决定要接收左侧(本地)还是右侧(远程仓库)的冲突代码片段,并在中间视图检查冲突解决后的代码是否符合你的预期

a. 对于没有冲突的代码区域

image.png

b. 对于有冲突的代码区域

image.png

c. 选择接受左侧区域的代码内容后,还想继续接受右侧区域的代码内容(相当于 accept combination)

image.png

d. 对于简单的冲突(比如,某一块代码区域左右两侧都有做修改,但这个修改并不会导致冲突,此时就会提供一键合并更改的操作)

image.png

3. 解决冲突完成点击应用更改保存最终结果

4. 源代码管理面板中点击+按钮存储更改内容

截屏2023-02-03 17.34.54.png

5. 最后提交代码即可