在Windows上的Git:你如何设置一个mergetool?
我已经尝试了Cygwin上的msysGit和Git。 两者都很好地工作,并且都完美地运行gitk和git-gui。
现在我怎么配置一个mergetool? (Vimdiff在Cygwin上工作,但最好我喜欢一些对我们的Windows爱好者同事更友好的用户界面。)
为了跟进Charles Bailey的回答,这里是我使用p4merge(免费的跨平台3way合并工具)的git设置; 在msys上测试Git(Windows)安装:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
或者,从Windows cmd.exe shell中,第二行变成:
git config --global mergetool.p4merge.cmd "p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED""
这些变化(相对于查尔斯贝利):
下载:http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
编辑 (2014年2月)
正如@Gregory Pakosz指出的那样,最新的msys git现在“本地”支持p4merge (在1.8.5.2.msysgit.0上测试过)。
您可以通过运行显示支持的工具列表:
git mergetool --tool-help
您应该在可用列表或有效列表中看到p4merge。 如果没有,请更新你的git。
如果p4merge被列为可用,它在你的PATH中,你只需要设置merge.tool:
git config --global merge.tool p4merge
如果它被列为有效,除了merge.tool之外,您还必须定义mergetool.p4merge.path:
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
~
应扩展到当前用户的主目录(因此理论上路径应该是~/AppData/Local/Perforce/p4merge.exe
),但这对我并不适用 $LOCALAPPDATA/Perforce/p4merge.exe
),git似乎没有扩展路径的环境变量(如果你知道如何使这个工作成功,请让我知道或更新这个答案) 设置mergetool.p4merge.cmd将不再工作,因为Git已经开始尝试支持p4merge,请参阅libexec / git-core / git-mergetool--lib.so我们只需要指定git的mergetool路径,例如p4merge:
git config --global mergetool.p4merge.path 'C:Program FilesPerforcep4merge.exe'
git config --global merge.tool p4merge
然后它会工作。
我在WinXP上使用了便携式Git(很好用!),并且需要解决分支中出现的冲突。 在我检查的所有gui中,KDiff3被证明是最透明的。
但是我发现了这篇博客文章中需要使用Windows的说明,这些说明与此处列出的其他方法略有不同。 基本上.gitconfig
于将这些行添加到我的.gitconfig
文件中:
[merge]
tool = kdiff3
[mergetool "kdiff3"]
path = C:/YourPathToBinaryHere/KDiff3/kdiff3.exe
keepBackup = false
trustExitCode = false
现在很好地工作!
链接地址: http://www.djcxy.com/p/7233.html