Beyond Compare 可直接配置为 Git 的合并与差异工具,无需重启或重装;关键需正确安装命令行工具、确认 bcomp/BCompare.exe 可用,并通过 git config 设置 merge.tool/diff.tool 为 bc5 或 bc4,同时启用 trustexitcode。

直接配好就能用,不用重启 Git 或重装任何东西;关键是路径、工具名、参数顺序这三点不能错。
确认 Beyond Compare 命令行工具已就绪
Git 调用的是 bcomp(BC 5)或 BCompare.exe(BC 4),不是图形界面程序本身。必须先在 Beyond Compare 安装目录里运行 “Install Command Line Tools” —— Windows 上是菜单 Tools > Install Command Line Tools,macOS/Linux 是安装包自带脚本。
验证是否成功:
- Windows:打开 Git Bash,执行
bcomp --version,有输出即成功 - macOS:终端执行
bcomp --version,若提示command not found,需手动把/Applications/Beyond Compare.app/Contents/MacOS/加入$PATH - Linux:检查
/usr/lib/beyondcompare/bcomp是否存在,权限是否为可执行
git config 配置 merge.tool 与 difftool
Git 2.3+ 默认支持 bc4(BC 4)和 bc5(BC 5)这两个内置工具名,优先用这个方式,不用手写 cmd 行:
- 设为默认合并工具:
git config --global merge.tool bc5(BC 5)或git config --global merge.tool bc4(BC 4) - 关闭交互提示:
git config --global mergetool.prompt false - 信任退出码(关键!否则 Git 会认为没保存):
git config --global mergetool.bc5.trustexitcode true - 同理配差异工具:
git config --global diff.tool bc5和git config --global difftool.prompt false
如果用的是旧版 Git([mergetool "bc4"] 区块,此时 cmd 中的路径必须用双反斜杠(Windows)或正斜杠(macOS/Linux),且变量名严格为 "$LOCAL" "$REMOTE" "$BASE" "$MERGED",缺一不可。
遇到“File not found”或空白窗口?检查这三处
常见报错如 error: cannot spawn bc5: No such file or directory 或启动后只显示空窗,大概率是以下原因:
-
bcomp不在系统PATH中 → 重新运行 Install Command Line Tools,或手动添加路径 - Git 配置中写了
bc3(已废弃)但实际装的是 BC 5 → 改成bc5并删掉旧的[mergetool "bc3"]区块 -
$MERGED文件被 Git 锁住或权限不足(尤其 Windows 下防病毒软件拦截)→ 临时关闭实时防护,或改用管理员权限运行 Git Bash
真正触发合并工具的命令只有两个
git mergetool 是唯一可靠入口,它会自动识别冲突文件并逐个调起 Beyond Compare;不要试图用 git difftool 解决合并冲突——它只传 $LOCAL 和 $REMOTE,缺 $BASE 和 $MERGED,无法做三向合并。
额外提醒:Sourcetree 等 GUI 工具底层也调用 git mergetool,所以只要 Git 配置正确,GUI 就能直接用上 Beyond Compare,无需单独设置。


















