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


当前回答

我用色差。

在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会得到更好的结果)

其他回答

打开Intellij IDEA,在“版本控制”工具窗口中选择单个或多个提交,浏览更改的文件,然后双击它们,并排检查每个文件的更改。

使用捆绑的命令行启动器,您可以在任何地方使用简单的IDEA some/path启动IDEA

对于unix,只组合git和内置的diff:

git show HEAD:path/to/file | diff -y - path/to/file

当然,您可以用任何其他git引用替换HEAD,并且您可能希望在diff命令中添加-W 170之类的东西。

这里假设您只是将您的目录内容与过去的提交进行比较。两个提交之间的比较比较复杂。如果你的shell是bash,你可以使用“进程替换”:

diff -y -W 170 <(git show REF1:path/to/file) <(git show REF2:path/to/file)

其中REF1和REF2是git引用-标签,分支或哈希。

export GIT_EXTERNAL_DIFF='meld $2 $5; echo >/dev/null'

然后简单的:

git 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中测试。

这里有一个方法。如果管道通过less, xterm宽度设置为80,这不是很热。但是如果继续执行命令,例如COLS=210,则可以使用扩展的xterm。

gitdiff()
{
    local width=${COLS:-$(tput cols)}
    GIT_EXTERNAL_DIFF="diff -yW$width \$2 \$5; echo >/dev/null" git diff "$@"
}