Git 离开';吉特差异';结果在终点站

Git 离开';吉特差异';结果在终点站,git,Git,我在终端中使用Git。当我必须进行一些更改时,我使用git diff查看我所做的更改。我希望输出结果留在终端中,这样我可以在按下Q后查看它,因为当我按下Q时,结果都会消失。这是因为Git通过寻呼机输出的结果。相反,请使用: git --no-pager diff 默认配置将其设置为使用寻呼机,您可以将此默认设置改为使用cat,以避免您必须使用git config--global core.pager cat键入--无寻呼机。您可以在文档中阅读更多内容 通过寻呼机输出到STDOUT要复杂得多,

我在终端中使用Git。当我必须进行一些更改时,我使用
git diff
查看我所做的更改。我希望输出结果留在终端中,这样我可以在按下Q后查看它,因为当我按下Q时,结果都会消失。

这是因为Git通过寻呼机输出的结果。相反,请使用:

git --no-pager diff
默认配置将其设置为使用寻呼机,您可以将此默认设置改为使用
cat
,以避免您必须使用
git config--global core.pager cat
键入
--无寻呼机
。您可以在文档中阅读更多内容


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

git diff | tee /dev/stderr | less

如果你想经常使用它,你可能想把它当作一个别名。

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

export LESS=eFRX
X
让它停止带走内容。
F
表示如果只有一个屏幕的内容,就退出。
R
有助于解释ANSI颜色代码(您将需要它用于
git diff
),而
X
使其在退出之前停止清除屏幕


使用其他一些使用
更少的程序会让你更开心。

y你不能将输出重定向到一个文件。@Rajeev但是我会有这么多文件吗?我不喜欢他们。我觉得在终端打印出来更好。其中一个答案对你有用吗?如果是这样,你应该接受它。@mygoare很抱歉我把它放错了顺序,请参阅更新答案。它可以工作,但我不能使用j,k移动,结果会全部打印出来。我希望这件事在新闻发布会之后发生q@mygoare看到更新的答案,我才刚刚明白你想要什么我认为这更简洁地回答了原来的问题。另一个答案是“为什么”差异消失了,但这一个告诉我们“如何”以最经济的方式阻止这种情况发生。这是LinuxMint上
less
的默认行为,直到我不得不使用mac电脑工作时才知道它有多好。就我而言,这个解决方案优于特伦特的。