将git diff结果留在终端中

时间:2012-12-22 15:31:47

标签: git

我在终端使用git。当我必须进行一些更改时,我会使用git diff来查看我所做的更改。我希望输出结果保留在终端中,因此我可以在按q后查看它,因为当我按q时,结果全部消失。

2 个答案:

答案 0 :(得分:14)

这是因为git通过寻呼机输出它。

git --no-pager diff

默认情况下,它设置为使用寻呼机配置,您可以将此默认设置更改为使用cat,以防止您必须使用--no-pager键入git config --global core.pager cat。您可以在文档here上阅读更多内容。


输出到STDOUT并通过寻呼机要复杂得多,并且需要超出常规unix重定向和管道范围的工具。 您可以使用STDERR将输出重定向到tee并输出到less,这会产生您想要的幻觉。请注意,这是一个黑客并滥用STDERR

的想法

git diff | tee /dev/stderr | less

如果您打算经常使用它,可能需要将其设为别名。

答案 1 :(得分:6)

一般来说,我不喜欢less与内容一起消失。我通常会将LESS环境变量设置为eFRX

export LESS=eFRX

X让它停止取走内容。如果只有一个屏幕内容,F表示退出。 R有助于解释ANSI颜色代码(您需要git diff),X会在退出前停止清除屏幕。

使用less的其他程序也会让你更开心。