我在Cygwin上尝试了msysGit和Git。两者本身都工作得很好,并且都能完美地运行gitk和git-gui。

现在我该如何配置合并工具呢?(Vimdiff在Cygwin上工作,但我更希望能有一个对我们一些喜欢windows的同事更友好的东西。)


当前回答

正如在这里(以及这里和这里)已经回答的,mergetool是用于配置此操作的命令。对于一个好的图形前端,我推荐kdiff3 (GPL)。

其他回答

对于kdiff3,您可以使用:

git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global mergetool.kdiff3.trustExitCode false

git config --global diff.guitool kdiff3
git config --global difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global difftool.kdiff3.trustExitCode false

呸,这终于为我工作(Windows 7 + Cygwin + TortoiseMerge):

在. /配置:

cmd = TortoiseMerge.exe /base:$(cygpath -d \"$BASE\") /theirs:$(cygpath -d \"$REMOTE\") /mine:$(cygpath -d \"$LOCAL\") /merged:$(cygpath -d \"$MERGED\")

感谢之前的海报为提示使用cygpath!

新的git版本似乎直接支持p4merge,所以

git config --global merge.tool p4merge

如果p4merge.exe在你的路径上,这应该是你所需要的。不需要设置cmd或路径。

在Windows 7上无以伦比

git config --global merge.tool bc3
git config --global mergetool.bc3.path "C:\Program Files (x86)\Beyond Compare 3\BCompare.exe"

你可能也想添加这些选项:

git config --global merge.tool p4mergetool
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
git config --global mergetool.p4mergetool.trustExitCode false
git config --global mergetool.keepBackup false

另外,我也不知道为什么,但是米兰·加迪安的回答把我搞砸了。