首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我做"git diff“时,我如何得到一个并排的diff?

当我做"git diff“时,我如何得到一个并排的diff?
EN

Stack Overflow用户
提问于 2011-10-06 11:10:01
回答 13查看 120.5K关注 0票数 206

当我输入"git diff“时,我希望看到一个并排的比较,就像输入”diff -y“一样,或者想要在交互式比较工具中显示比较结果,比如"kdiff3”。如何做到这一点?

EN

回答 13

Stack Overflow用户

发布于 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?

对于较新版本的gitdifftool命令支持许多开箱即用的外部比较工具。例如,vimdiff是自动支持的,可以通过以下方式从命令行打开:

代码语言:javascript
复制
cd /path/to/git/repo
git difftool --tool=vimdiff

通过git difftool --tool-help列出了其他受支持的外部diff工具,以下是示例输出:

代码语言:javascript
复制
'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
票数 210
EN

Stack Overflow用户

发布于 2013-11-11 20:01:55

您也可以尝试使用git diff --word-diff。它不完全是并排的,但不知何故更好,所以你可能更喜欢它而不是实际的并排需求。

票数 73
EN

Stack Overflow用户

发布于 2016-08-30 18:57:46

您可以使用sdiff执行并行diff,如下所示:

代码语言:javascript
复制
$ git difftool -y -x sdiff  HEAD^ | less

其中HEAD^是一个示例,您应该将其替换为您想要与之不同的任何内容。

我找到了这个解决方案here,还有一些其他的建议。然而,这一个答案简洁而清晰地回答了操作员的问题。

有关参数的说明,请参阅man git-difftool

考虑到这些注释,您可以通过编写以下可执行脚本来创建一个方便的git sdiff命令:

代码语言:javascript
复制
#!/bin/sh
git difftool -y -x "sdiff -w $(tput cols)" "${@}" | less

将其另存为/usr/bin/git-sdiff并对其执行chmod +x。然后你就可以这样做了:

代码语言:javascript
复制
$ git sdiff HEAD^

额外提示

按照注释中的建议,您可以使用icdiff来执行sdiff对彩色输出所做的操作:

代码语言:javascript
复制
$ more /usr/bin/git-sdiff
#!/bin/sh
git difftool -y -x "icdiff --cols=$(tput cols)" "${@}" | less
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7669963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档