如何让Git Difftool调用Beyond Compare打开独立实例?
解决Git difftool复用Beyond Compare窗口的问题
要让每个git difftool --dir-diff命令启动独立的Beyond Compare实例,核心是给Beyond Compare的启动命令添加强制新建实例的参数——因为Beyond Compare默认以单实例模式运行,会自动复用已有窗口。
具体配置步骤
查看当前difftool配置(可选)
执行以下命令确认当前Beyond Compare的配置路径:git config --global --get difftool.bc.path更新Git的difftool配置
根据操作系统,给Beyond Compare的启动命令添加对应参数:Windows系统:
执行以下命令更新全局配置(若Beyond Compare安装路径不同,请自行修改):git config --global difftool.bc.cmd "\"C:/Program Files/Beyond Compare 4/BComp.exe\" /newinstance \"$LOCAL\" \"$REMOTE\"" git config --global difftool.bc.dircmd "\"C:/Program Files/Beyond Compare 4/BComp.exe\" /newinstance \"$LOCAL\" \"$REMOTE\""参数
/newinstance会强制Beyond Compare启动新的独立窗口。macOS/Linux系统:
执行以下命令(路径根据实际安装位置调整):git config --global difftool.bc.cmd "\"/Applications/Beyond Compare.app/Contents/MacOS/bcomp\" --new-instance \"$LOCAL\" \"$REMOTE\"" git config --global difftool.bc.dircmd "\"/Applications/Beyond Compare.app/Contents/MacOS/bcomp\" --new-instance \"$LOCAL\" \"$REMOTE\""参数
--new-instance用于强制开启新实例。
验证配置
打开两个不同的Git Bash窗口,分别执行git difftool branchA branchB --dir-diff,此时会弹出两个独立的Beyond Compare窗口,各自对应不同的diff任务。
补充说明
- 若只需针对单个仓库配置,去掉命令中的
--global参数即可。 - 确保使用的是Beyond Compare 4及以上版本,该类参数在旧版本中可能不支持。
内容的提问来源于stack exchange,提问作者athos
相关产品推荐
相关产品推荐

