默认行为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
。