为什么我必须在git log结束时点击q

时间:2010-03-02 16:56:51

标签: git

git log -n 20 --pretty=oneline

我告诉git我只需要查看最近20次提交。我讨厌打Q以摆脱END。有没有办法让我不必打q。

8 个答案:

答案 0 :(得分:79)

Git会自动为您分页输出,因为日志往往容易溢出单个终端窗口大小(您可能会遇到极少数例外情况 - 一种oneline格式和一个小的提交限制)。如果您不想这样,请使用:

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

请注意,这确实意味着你会得到一些丑陋的包装,因为寻呼机之前已经关闭了包装(因为你可以使用光标键向左右滚动)。

答案 1 :(得分:24)

你可以通过告诉它使用cat而不是更少来“关闭”git分页。此后,当您想要分页时,将输出通过less,或者如果您只想查看顶部等,则输出;

git config --global core.pager cat

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

答案 2 :(得分:13)

如果内容适合一个屏幕,

less接受-F参数自动退出

答案 3 :(得分:8)

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

--no-pager选项略短,但也会删除任何颜色。

答案 4 :(得分:8)

如果您想在别名中使用--no-pager,请按以下方式设置别名:

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

答案 5 :(得分:0)

q用于关闭用于查看日志的the command line program ... 你可以使用另一个日志查看器,如gitk

gitk -n 20

答案 6 :(得分:0)

无需单击q即可退出的日志命令别名:

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

答案 7 :(得分:0)

如果您想要简短,-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