我在终端中使用 Git。当我必须做出一些改变时,我会用git diff
来看我改变了什么。我希望该输出结果保留在终端中,这样我可以在按下 后查看它Q,因为当我按下 时Q,结果都消失了。
问问题
2219 次
2 回答
17
发生这种情况是因为 Git 通过寻呼机输出它。相反,使用:
git --no-pager diff
它被默认配置设置为使用寻呼机,您可以更改此默认设置以cat
代替使用,以防止您必须--no-pager
使用git config --global core.pager cat
. 您可以在此处的文档中阅读更多信息。
通过寻呼机输出STDOUT
和通过寻呼机要复杂得多,并且需要超出常规 Unix 重定向和管道范围的工具。您可以将输出重定向到STDERR
withtee
和 pipe to less
,这会产生您想要的错觉。请注意,这是一个 hack 并且滥用了STDERR
git diff | tee /dev/stderr | less
如果您打算经常使用它,您可能希望将其设为别名。
于 2012-12-22T15:35:45.073 回答
11
一般来说,我也不喜欢less
随着内容消失。我通常将我的LESS
环境变量设置为eFRX
:
export LESS=eFRX
正是它X
使它停止带走内容。F
如果只有一个屏幕的内容,则表示退出。R
有助于解释 ANSI 颜色代码(您需要它)git diff
,并X
使其在退出前停止清除屏幕。
它会让你对使用的其他一些程序更满意less
。
于 2012-12-23T10:43:30.373 回答