使用WinMerge作为git的Merge工具

我比较喜欢使用免费的WinMerge作为diff和merge工具,虽然TortoiseGit也自己带了TortoiseGitMerge工具,但是使用起来总觉得不是那么方便。

虽然WinMerge项目看起来没人维护了,最后一个发布打分版本在2013-02-02,但是这个工具使用起来还是相当方便的。我在重装机器的时候,或者更新Windows的时候,如果需要配置TortoiseGit,总是需要到网上查找如何配置WinMerge,因为长长的命令参数总是记不起来。所以在本文中记录下来。

作为Diff工具

如果使用WinMerge作为diff工具,需要在TortoiseGit的设置(Setting)对话框中选择Diff Viewer:

选择外部工具"External",在输入框中输入:

1
C:\Program Files (x86)\WinMerge\WinMergeU.exe /s /e /x /ul /ur /wl /dl %bname /dr %yname %base %mine

如果你已经把C:\Program Files (x86)\WinMerge加入到环境变量Path中了,你可以简写成:

1
WinMergeU /s /e /x /ul /ur /wl /dl %bname /dr %yname %base %mine

/s限制WinMerge窗口为单个实例,避免出现多个窗口。

/e允许使用ESC作为退出键。

/x如果文件没有变动则关闭WinMerge窗口。

/ul/ur不把左右窗口的文件加入到Most Recently Used (MRU)列表。

/wl左边窗口的文件设为只读,这样我们只可以修改右边的文件。

/dl为左边的文件指定描述符。

/dr为右边的文件指定描述符。

%base为左边窗口打开的文件。

%mine为右边窗口打开的文件。

作为Merge工具

在TortoiseGit的设置(Setting)对话框中选择Merge Tool:

1
C:\Program Files (x86)\WinMerge\WinMergeU.exe %theirs %mine %merged

如果你已经把C:\Program Files (x86)\WinMerge加入到环境变量Path中了,你可以简写成:

1
WinMergeU %theirs %mine %merged

参考资料

  1. http://www.bricelam.net/2014/08/14/using-winmerge-with-tortoisegit.html
  2. http://thoai-nguyen.blogspot.com/2012/03/setup-tortoise-git-and-winmerge.html