我在Cygwin上尝试了msysGit和Git。两者本身都工作得很好,并且都能完美地运行gitk和git-gui。
现在我该如何配置合并工具呢?(Vimdiff在Cygwin上工作,但我更希望能有一个对我们一些喜欢windows的同事更友好的东西。)
我在Cygwin上尝试了msysGit和Git。两者本身都工作得很好,并且都能完美地运行gitk和git-gui。
现在我该如何配置合并工具呢?(Vimdiff在Cygwin上工作,但我更希望能有一个对我们一些喜欢windows的同事更友好的东西。)
当前回答
呸,这终于为我工作(Windows 7 + Cygwin + TortoiseMerge):
在. /配置:
cmd = TortoiseMerge.exe /base:$(cygpath -d \"$BASE\") /theirs:$(cygpath -d \"$REMOTE\") /mine:$(cygpath -d \"$LOCAL\") /merged:$(cygpath -d \"$MERGED\")
感谢之前的海报为提示使用cygpath!
其他回答
在Windows 7上无以伦比
git config --global merge.tool bc3
git config --global mergetool.bc3.path "C:\Program Files (x86)\Beyond Compare 3\BCompare.exe"
我不得不在windows 7上使用msysGit删除额外的引用,不知道为什么。
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
如果有人想在TortoiseGit上使用gvim作为他们的差异工具,那么你需要在文本输入中输入外部差异工具的路径:
path\to\gvim.exe -f -d -c "wincmd R" -c "wincmd R" -c "wincmd h" -c "wincmd J"
为了跟进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\""
变化(相对于查尔斯·贝利):
added to global git config, i.e. valid for all git projects not just the current one the custom tool config value resides in "mergetool.[tool].cmd", not "merge.[tool].cmd" (silly me, spent an hour troubleshooting why git kept complaining about non-existing tool) added double quotes for all file names so that files with spaces can still be found by the merge tool (I tested this in msys Git from Powershell) note that by default Perforce will add its installation dir to PATH, thus no need to specify full path to p4merge in the command
下载:http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools。
编辑(2014年2月)
正如@Gregory Pakosz所指出的,最新的msysgit现在“本地”支持p4merge(在1.8.5.5.2 .msysgit.0上测试)。
您可以通过运行以下命令显示支持的工具列表:
git mergetool --tool-help
您应该在可用或有效列表中看到p4merge。如果没有,请更新git。
如果p4merge被列出为可用,它在你的PATH中,你只需要设置merge.tool:
git config --global merge.tool p4merge
如果它被列为有效的,则必须定义mergetool.p4merge。除了merge.tool之外的路径:
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
The above is an example path when p4merge was installed for the current user, not system-wide (does not need admin rights or UAC elevation) Although ~ should expand to current user's home directory (so in theory the path should be ~/AppData/Local/Perforce/p4merge.exe), this did not work for me Even better would have been to take advantage of an environment variable (e.g. $LOCALAPPDATA/Perforce/p4merge.exe), git does not seem to be expanding environment variables for paths (if you know how to get this working, please let me know or update this answer)
我在WinXP上使用Portable Git(工作很好!),需要解决分支中出现的冲突。在我检查的所有gui中,KDiff3被证明是使用起来最透明的。
但是我在这篇博文中找到了让它在Windows中工作所需的说明,这些说明与这里列出的其他方法略有不同。它基本上相当于把这些行添加到我的.gitconfig文件中:
[merge]
tool = kdiff3
[mergetool "kdiff3"]
path = C:/YourPathToBinaryHere/KDiff3/kdiff3.exe
keepBackup = false
trustExitCode = false
现在工作得很好!