为什么我必须在“ git log”的末尾按“ Q”?

考虑一下:

git log -n 20 --pretty=oneline

我告诉 Git,我只需要看到最后20次提交。我讨厌按 Q去除 END。有没有办法让我不用按 Q键?

17216 次浏览

Q 用于关闭用于查看日志的 命令行程序..。

您可以使用另一个日志查看器,比如 gitk:

gitk -n 20

Git 会自动为您对输出进行分页,因为日志容易溢出单个终端窗口大小(您处于罕见的例外情况之一——一行格式和小的提交限制)。如果你不想要这个,使用:

git --no-pager log -n 20 --pretty=oneline

请注意,这确实意味着您将得到一些难看的包装,因为寻呼机以前为您关闭了包装(因为您可以使用光标键向左向右滚动)。

git log -n 20 --pretty=oneline | cat

是一个有点短的 --no-pager选项,但也将删除任何颜色目前。

您可以通过告诉 git 使用 cat 而不是 less 来“关闭”git 分页。然后,当您需要分页时,通过 less 管道输出,或者当您只想查看顶部时,通过 head 管道输出,等等。

git config --global core.pager cat

我关闭自动分页,因为我经常在 emacs 中运行 git,它既不需要也不能很好地使用 less。

less接受 -F参数退出自动如果内容适合在一个屏幕上

如果您想在别名中使用 --no-pager,可以这样设置您的别名:

hist = !git --no-pager log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short

Log 命令的别名,您不必单击 q来使其消失:

git config --global alias.hist '!git --no-pager log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short --max-count=10'

如果短是你想要的,-P是关闭分页的 --no-pager的同义词。

一些有趣的例子:

    git --no-pager log --pretty=oneline -10  # summarize last 10 commits
git -P log --pretty=oneline -10          # same!


git -P log -1 -c    # show diffs for last commmit
git -P log -1 -U1   # unified diffs w/ 1 line of context


git -P log -1 --name-only  # print commit + names of changed files