当我键入gitdiff时,我想用我选择的可视化diff工具(Windows上的SourceGear“diffmerge”)查看输出。如何配置git以执行此操作?
当前回答
这在Windows 7上适用。不需要中间sh脚本
.gitconfig的内容:
[diff]
tool = kdiff3
[difftool]
prompt = false
[difftool "kdiff3"]
path = C:/Program Files (x86)/KDiff3/kdiff3.exe
cmd = "$LOCAL" "$REMOTE"
其他回答
如果您通过Cygwin执行此操作,则可能需要使用cygpath:
$ git config difftool.bc3.cmd "git-diff-bcomp-wrapper.sh \$LOCAL \$REMOTE"
$ cat git-diff-bcomp-wrapper.sh
#!/bin/sh
"c:/Program Files (x86)/Beyond Compare 3/BComp.exe" `cygpath -w $1` `cygpath -w $2`
如果您不熟悉命令行,那么如果您安装了TortoiseGit,您可以右键单击一个文件以获得带有“Diff later”选项的TortoiseGit子菜单。
当您在第一个文件上选择此选项时,您可以右键单击第二个文件,转到TortoiseGit子菜单并选择“Diffwith==yourfilehere==”。这将为结果提供TortoiseGit合并GUI。
我在这里尝试了一些新奇的东西(使用tkdiff),但没有任何效果。所以我写了下面的脚本,tkgitdiff。它做了我需要它做的事。
$ cat tkgitdiff
#!/bin/sh
#
# tkdiff for git.
# Gives you the diff between HEAD and the current state of your file.
#
newfile=$1
git diff HEAD -- $newfile > /tmp/patch.dat
cp $newfile /tmp
savedPWD=$PWD
cd /tmp
patch -R $newfile < patch.dat
cd $savedPWD
tkdiff /tmp/$newfile $newfile
您可能想尝试xd,它是Git/SVNdiff的GUI包装器。它本身不是diff工具。
当你想运行git diff或svn diff时,你可以运行xd,它会向你显示一个文件列表,一个预览窗口,你可以启动任何你喜欢的diff工具,包括tkdiff、xxdiff、gvimdiff、Emacs(ediff)、XEmacs(diff)、Meld、Diffuse、Kompare和KDiff3。您也可以运行任何自定义工具。
不幸的是,该工具不支持Windows。
披露:我是这个工具的作者。
如果你在Mac上,并且有Xcode,那么你已经安装了FileMerge。终端命令是opendiff,因此您可以执行以下操作:
git difftool -t opendiff
推荐文章
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何从另一个文件A中删除文件B中出现的行?
- 如何配置Mac OS X术语,使git有颜色?