当我输入git diff时,我希望看到一个并排的diff,就像用diff -y一样,或者像在kdiff3这样的交互式diff工具中显示diff。如何做到这一点呢?


当前回答

我最近实现了一个这样做的工具:https://github.com/banga/git-split-diffs

下面是如何使用它:

npm install -g git-split-diffs

git config --global core.pager "git-split-diffs --color | less -RFX"

这是它在终端中的外观(使用默认主题):

如您所见,它还支持语法高亮显示和行中更改的单词高亮显示

其他回答

当我在寻找一种使用git内置方式来定位差异的快速方法时,这个问题出现了。我的解决方案标准:

快速启动,需要内置选项 可以处理多种格式,xml,不同的编程语言 快速识别大文本文件中的小代码更改

我找到这个答案是为了给git上色。

为了获得并排diff而不是行diff,我调整了mb14在这个问题上的优秀答案,使用以下参数:

$ git diff --word-diff-regex="[A-Za-z0-9. ]|[^[:space:]]"

如果你不喜欢额外的[-或{+选项——word-diff=color可以使用。

$ git diff --word-diff-regex="[A-Za-z0-9. ]|[^[:space:]]" --word-diff=color

这有助于与json和xml文本以及java代码进行适当的比较。

总之,——word-diff-regex选项与颜色设置一起具有非常有用的可见性,与标准行差异相比,当浏览带有小行更改的大文件时,可以获得彩色的并排源代码体验。

我个人非常喜欢icdiff !

如果你在Mac OS X上使用HomeBrew,只需安装icdiff即可。

为了获得正确的文件标签,加上其他很酷的功能,我在~/.gitconfig中有:

[pager]
    difftool = true
[diff]
    tool = icdiff
[difftool "icdiff"]
    cmd = icdiff --head=5000 --highlight --line-numbers -L \"$BASE\" -L \"$REMOTE\" \"$LOCAL\" \"$REMOTE\"

我用git difftool

我用色差。

在Mac OS X上,使用

$ sudo port install colordiff

在Linux上可能会安装colordiff或类似的东西,这取决于你的发行版。

然后:

$ git difftool --extcmd="colordiff -ydw" HEAD^ HEAD

或者创建别名

$ git alias diffy "difftool --extcmd=\"colordiff -ydw\""

然后你就可以使用它了

$ git diffy HEAD^ HEAD

我称它为“diffy”,因为diff -y是unix中并排的diff。Colordiff还添加了更好的颜色。 在选项-ydw中,y表示并排,w表示忽略空白,d表示产生最小的diff(通常作为diff会得到更好的结果)

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

伊迪夫

这个工具以前称为cdiff,可以并排显示、增量显示和彩色显示差异。

而不是做git diff,做:

ydiff -s -w0

这将为每个有差异的文件以并排显示模式启动ydiff。

安装:

python3 -m pip install --user ydiff

-or-

brew install ydiff

对于git日志,您可以使用:

ydiff -ls -w0

-w0自动检测终端宽度。有关详细信息和演示,请参阅ydiff GitHub存储库页面。

在Git 2.18.0, ydiff 1.1中测试。