彩色、编号、分页 git diff

彩色、编号、分页 git diff

默认行为git diff——语法颜色、分页——使用起来非常好,但是如果使用上下文的行号会更好一些,特别是对于较大的差异,特别是对于最终页面。

git diff | nl | more

几乎给了我所需的一切,但它放弃了颜色;有什么办法可以把它拿回来吗?

答案1

用于less -r显示颜色,但您需要强制git使用颜色,因为当您使用管道时,git diff它将很难--nocolor

git diff --color HEAD~3 HEAD | nl | less -R

如果您想获取每行的行号,请尝试查看此处建议的解决方案,https://stackoverflow.com/questions/24455377/git-diff-with-line-numbers-git-log-with-line-numbers

答案2

git log您可以使用less内置的行编号来代替管道。打字-Ninless将使其显示行号。

答案3

Dylan Frese 的回答让我进行了一些调查,我相信这个解决方案比我之前接受的解决方案稍好一些;无论如何,为了我的目的。

git config --global --replace-all core.pager 'less -NR'

这让我git diff什至不用去想它。当然,有时您可能不希望这是永久性的全局更改,因此信息。这里一切仍然有效。

答案4

但如果有上下文的行号会更好一些,

我写的git diffn就是这样做的。示例输出如下面的屏幕截图所示,表明它也适用于颜色。

完整的安装说明在我的其他答案中:Stack Overflow:带有行号的 Git diff(带有行号的 Git log)。安装很简单——只需几个命令。

作为 的包装器git diff,它支持所有选项和参数git diff

在此输入图像描述

相关内容