彩色、编号、分页的 git diff

Bob*_*ack 7 command-line

git diff语法着色、分页的默认行为非常好用,但如果使用行号作为上下文会更好一些,特别是对于较大的差异,尤其是对于最后一页。

git diff | nl | more
Run Code Online (Sandbox Code Playgroud)

几乎给了我我需要的一切,但它丢弃了着色;有什么办法可以拿回来吗?

Rab*_*bin 10

用于less -r显示颜色,但您将需要强制git使用颜色,因为当您通过管道git diff传输时,它会默认为--nocolor

git diff --color HEAD~3 HEAD | nl | less -R
Run Code Online (Sandbox Code Playgroud)

如果您想获取每行的行号,请尝试查看此处建议的解决方案,/sf/ask/1711876421/

  • 使用 `less -R` 仅以“原始”形式输出 ANSI“颜色”转义序列。 (3认同)