前置知识: Git

git-mergetool

2 minIntermediate2026/6/14

git mergetool配置与使用:可视化冲突解决工具的集成与自定义。

1. mergetool 概述

1.1 什么是 mergetool

git mergetool 启动一个可视化合并工具来帮助解决冲突,比手动编辑冲突标记更直观。

1.2 工作原理

冲突文件 → mergetool → 本地版本 / 基础版本 / 远程版本 → 合并结果

mergetool 展示三方视

  • LOCAL:当前分支版本
  • BASE:共同祖先版本
  • REMOTE:合并分支版本
  • MERGED:合并结果

2. 配置 mergetool

2.1 选择工具

# 查看支持的工具
git mergetool --tool-help

# 设置默认工具
git config --global merge.tool vimdiff
git config --global merge.tool vscode
git config --global merge.tool meld

# 临时使用指定工具
git mergetool --tool=meld

2.2 常用工具配置

VS Code

git config --global merge.tool vscode
git config --global mergetool.vscode.cmd 'code --wait $MERGED'

Vimdiff

git config --global merge.tool vimdiff
# 内置支持,无需额外配置

Meld

git config --global merge.tool meld
# Linux/macOS: sudo apt install meld / brew install meld

Beyond Compare

git config --global merge.tool bc
git config --global mergetool.bc.cmd 'bcompare $LOCAL $REMOTE $BASE $MERGED'

2.3 常用选项

# 不提示就启动工具
git config --global mergetool.prompt false

# 合并后保留备份文件
git config --global mergetool.keepBackup true

# 自动检测工具路径
git config --global mergetool.autoResolve true

3. 使用 mergetool

3.1 基本流程

# 1. 合并产生冲突
git merge feature

# 2. 启动 mergetool
git mergetool

# 3. 在工具中解决冲突
# 4. 保存并退出
# 5. Git 自动标记为已解决

# 6. 完成合并
git commit

3.2 指定文件

# 只解决特定文件的冲突
git mergetool src/index.js

# 解决所有冲突文件
git mergetool

4. 工具对比

工具平台特点推荐度
VS Code跨平台内置合并编辑器,直观⭐⭐⭐
Vimdiff跨平台终端内使用,需 Vim 技能⭐⭐
MeldLinux/macOS三方对比,免费开源⭐⭐⭐
Beyond Compare跨平台功能最强,付费⭐⭐⭐
KDiff3跨平台免费,自动合并⭐⭐
P4Merge跨平台Perforce 免费⭐⭐