考虑一下:
git log -n 20 --pretty=oneline
我告诉 Git,我只需要看到最后20次提交。我讨厌按 Q去除 END。有没有办法让我不用按 Q键?
Q 用于关闭用于查看日志的 命令行程序..。
您可以使用另一个日志查看器,比如 gitk:
gitk -n 20
Git 会自动为您对输出进行分页,因为日志容易溢出单个终端窗口大小(您处于罕见的例外情况之一——一行格式和小的提交限制)。如果你不想要这个,使用:
git --no-pager log -n 20 --pretty=oneline
请注意,这确实意味着您将得到一些难看的包装,因为寻呼机以前为您关闭了包装(因为您可以使用光标键向左向右滚动)。
git log -n 20 --pretty=oneline | cat
是一个有点短的 --no-pager选项,但也将删除任何颜色目前。
--no-pager
您可以通过告诉 git 使用 cat 而不是 less 来“关闭”git 分页。然后,当您需要分页时,通过 less 管道输出,或者当您只想查看顶部时,通过 head 管道输出,等等。
git config --global core.pager cat
我关闭自动分页,因为我经常在 emacs 中运行 git,它既不需要也不能很好地使用 less。
less接受 -F参数退出自动如果内容适合在一个屏幕上
less
-F
如果您想在别名中使用 --no-pager,可以这样设置您的别名:
hist = !git --no-pager log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Log 命令的别名,您不必单击 q来使其消失:
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的同义词。
-P
一些有趣的例子:
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