2

我想要一种获取lessgit diff 和 git status 缓冲区的 pager-view () 的方法,以获得我工作更改状态的完整摘要。它有帮助,因为git diff单独将隐藏分阶段的更改,而status将能够突出显示。

我知道我可能可以做类似的事情

{ git status && git diff | cat }

它基本上在这里连接输出,但这会导致git diff语法颜色下降。

我可能会使用perl,但我想使用一些整洁shbashzsh技巧来连接这些东西,同时保持颜色完整。

另外,我的 git diff 使用

[pager]
    log = diff-highlight | less
    show = diff-highlight | less
    diff = diff-highlight | less

所以也许我需要在它跳过使用的地方设置一些自定义的东西,less这样我就可以less在连接的输出上应用我的。

4

1 回答 1

4

只需明确地与已经提交的内容进行比较:

git diff HEAD

这将向您显示完整的差异,无论是否上演了什么。如果您确实想查看已上演和未上演的内容,则可以在连接之前明确请求颜色:

git status && git diff --color | cat

请注意,这仍然会从git status命令中删除颜色。如果你也想要那种颜色,你可以利用 Git 在每个命令的基础上覆盖配置值的能力:

git -c color.ui=always status && git diff --color | cat
于 2013-04-10T06:03:16.820 回答