【问题标题】:Why do I have to hit 'Q' at the end of 'git log'?为什么我必须在“git log”末尾点击“Q”?
【发布时间】:2010-03-02 16:56:51
【问题描述】:

考虑:

git log -n 20 --pretty=oneline

我告诉 Git 我只需要查看最后 20 次提交。我讨厌按 Q 来摆脱 END。有没有办法让我不用按Q

【问题讨论】:

    标签: git


    【解决方案1】:

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

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

    请注意,这确实意味着您会得到一些难看的换行,因为寻呼机之前已为您关闭换行(因为您可以使用光标键左右滚动)。

    【讨论】:

    • @DeckTrout 没有任何信息,没有人可以帮助您。如果您可以设法具体说明您的设置,则可以尝试提出一个新问题。此答案适用于此处的 OP(以及许多其他人),因此显然对您而言有些不同。
    • .gitconfig 中添加l = !git --no-pager log -n 20 --pretty=oneline 以创建别名..
    • 在 Git For Windows 上,这会将“commit insert-hash-here”的突出显示从橙色更改为黄色。
    【解决方案2】:

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

    git config --global core.pager cat
    

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

    【讨论】:

    • 我的 git 日志没有以换行符结尾,因此日志后面的 shell 提示符与我最早的提交位于同一行。尽管如此,还是不​​错的提示,谢谢。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      --no-pager 选项短一点,但也会删除所有存在的颜色。

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          q用来关闭the command line program用来查看日志...

          您可以使用其他日志查看器,例如 gitk:

          gitk -n 20
          

          【讨论】:

          • gitk 对于查看图表等很有用。我一直在寻找一个轻量级的解决方案。谢谢。
          【解决方案7】:

          日志命令的别名,您无需单击 q 即可使其消失:

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              猜你喜欢
              • 2022-10-24
              • 1970-01-01
              • 1970-01-01
              • 2015-06-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-03-05
              • 1970-01-01
              相关资源
              最近更新 更多