【问题标题】:Display last git commit comment显示最后一个 git commit 评论
【发布时间】:2011-11-09 17:12:29
【问题描述】:

通常在提交期间 ($ git -commit -m ""),我希望阅读我的最后一条评论以记住我取得了哪些进展。有没有一种简单的方法可以通过命令行直接访问最后的提交消息? (我使用的是 Windows。)

【问题讨论】:

  • 如果是常规操作,请为您选择的解决方案/命令行创建一个alias(例如wherewasi ;-)。您也可以包含分支信息。

标签: git


【解决方案1】:

一般:

git log -n

将向您显示最后的 n 提交消息

更优雅 - 如果您想快速了解您的提交

git log --oneline -n

这将只显示最后n 提交消息的第一行。

您可以将其保存为 git 别名或带有较短命令的 shell 别名。例如,我在我的 shell 中以 glog 的形式获取它,并且我可以使用 glog -10 查看我的最后 10 条提交消息。

【讨论】:

    【解决方案2】:

    你可以使用

    git show -s --format=%s
    

    此处--format 启用各种打印选项,请参阅documentation here。具体来说,%s表示“主题”。此外,-s 代表--no-patch,它会抑制差异内容。

    我经常用

    git show -s --format='%h %s'
    

    %h 表示提交的简短哈希

    另一种方法是

    git show-branch --no-name HEAD
    

    它似乎比其他方式运行得更快。

    其实我写了一个小工具来查看我所有repos的状态,包括编辑状态、与远程分支的关系等。它还可以从任何工作目录批量执行命令。

    你可以在github找到它。

    【讨论】:

    • IMO 这比多次提交的公认答案要好。它不会对我产生不必要的换行符。多个提交(即过去 5 次)可以通过包含 -5 来显示,即git show -s --format=%s -5
    【解决方案3】:

    这个命令会给你最后的提交信息:

    git log -1 --oneline --format=%s | sed 's/^.*: //'
    

    输出类似于:

    Create FUNDING.yml
    

    您可以将 -1 更改为任何负数以增加检索到的提交消息的范围

    【讨论】:

      【解决方案4】:

      如果您只想查看提交消息的主题(第一行)

      git log -1 --format=%s
      

      这以前没有记录在任何答案中。或者,approach by nos 也会显示它。

      参考:

      【讨论】:

        【解决方案5】:

        我刚刚通过检索上一个命令找到了一个使用 shell 的解决方法。

        Ctrl-R调出反向搜索命令:

        reverse-i-search

        然后开始输入 git commit -m,这将添加这个作为搜索命令,这会带来之前的 git commit 及其消息:

        reverse-i-search`git commit -m`: git commit -m "message"
        

        输入。就是这样!

        (在 Ubuntu shell 中测试)

        【讨论】:

          【解决方案6】:

          git log -1 --pretty='%s'开始

          但是下面这个涵盖了所有的情况,

          git log --pretty='format:%Creset%s' --no-merges -1

          • 没有多余的空格
          • 放弃合并提交
          • 无提交 ID、日期,仅显示消息。

          粘贴并自己查看

          【讨论】:

          • 注意:%s 仅包含提交消息的主题
          【解决方案7】:

          我这样做了

          git reflog -1 | sed 's/^.*: //'
          

          【讨论】:

            【解决方案8】:

            为了更易读,运行一次这个命令:

            git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
            

            这样当你运行时:

            git lg
            

            你会得到一个很好的读数。只显示最后一行:

            git lg -1
            

            找到解决方案here

            【讨论】:

              【解决方案9】:

              git log -1 branch_name 将向您显示来自指定分支(即不一定是您当前所在的分支)的最后一条消息。

              【讨论】:

                【解决方案10】:
                git show
                

                输入速度最快,但也会显示差异。

                git log -1
                

                快速简单。

                git log -1 --pretty=%B
                

                如果您只需要提交消息而不需要其他任何内容。

                【讨论】:

                • %B 格式是我不需要缩进提交消息所需要的。是的,@Juh_,即使 git gui 不为您换行,在提交消息中使用 80 列文本而不是每段行也是一个好主意。
                • @Juh_ 您可以使用git log -1 --pretty=%B | cat 显示整个消息,但正如彼得所说,您应该尽量将其保持在 80 个字符以内。
                • @Juh_ 这有点太晚了,但是如果您希望提交消息换行,只需将输出通过管道传输到 cat 即:git log -1 --pretty= | cat
                • 有人在寻找有关百分比占位符的更多信息,请参阅:kernel.org/pub/software/scm/git/docs/…(向下滚动至format:&lt;string&gt;)。
                • 如果按照 man docs 中的建议将 format: 前缀添加到 %B,它不会在输出末尾显示额外的空行:git log -1 --pretty=format:%B
                【解决方案11】:

                git log -1 将显示最新的提交消息,如果您只想显示 sha1 和相关的提交消息,git log -1 --oneline 将显示。

                【讨论】:

                  猜你喜欢
                  • 2015-11-22
                  • 1970-01-01
                  • 2011-01-08
                  • 2016-08-03
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多