当我输入"git diff“时,我希望看到一个并排的比较,就像输入”diff -y“一样,或者想要在交互式比较工具中显示比较结果,比如"kdiff3”。如何做到这一点?
发布于 2011-10-06 11:11:26
尝试git difftool
使用git difftool
而不是git diff
。你再也回不去了。
更新以添加示例用法:
下面是另一个关于git difftool
的堆栈溢出链接:How do I view 'git diff' output with my preferred diff tool/ viewer?
对于较新版本的git
,difftool
命令支持许多开箱即用的外部比较工具。例如,vimdiff
是自动支持的,可以通过以下方式从命令行打开:
cd /path/to/git/repo
git difftool --tool=vimdiff
通过git difftool --tool-help
列出了其他受支持的外部diff工具,以下是示例输出:
'git difftool --tool=<tool>' may be set to one of the following:
araxis
kompare
vimdiff
vimdiff2
The following tools are valid, but not currently available:
bc3
codecompare
deltawalker
diffuse
ecmerge
emerge
gvimdiff
gvimdiff2
kdiff3
meld
opendiff
tkdiff
xxdiff
发布于 2013-11-11 20:01:55
您也可以尝试使用git diff --word-diff
。它不完全是并排的,但不知何故更好,所以你可能更喜欢它而不是实际的并排需求。
发布于 2016-08-30 18:57:46
您可以使用sdiff
执行并行diff
,如下所示:
$ git difftool -y -x sdiff HEAD^ | less
其中HEAD^
是一个示例,您应该将其替换为您想要与之不同的任何内容。
我找到了这个解决方案here,还有一些其他的建议。然而,这一个答案简洁而清晰地回答了操作员的问题。
有关参数的说明,请参阅man git-difftool。
考虑到这些注释,您可以通过编写以下可执行脚本来创建一个方便的git sdiff
命令:
#!/bin/sh
git difftool -y -x "sdiff -w $(tput cols)" "${@}" | less
将其另存为/usr/bin/git-sdiff
并对其执行chmod +x
。然后你就可以这样做了:
$ git sdiff HEAD^
额外提示
按照注释中的建议,您可以使用icdiff
来执行sdiff
对彩色输出所做的操作:
$ more /usr/bin/git-sdiff
#!/bin/sh
git difftool -y -x "icdiff --cols=$(tput cols)" "${@}" | less
https://stackoverflow.com/questions/7669963
复制相似问题