显示最后一次Git提交的注释

577

在提交代码时($ git -commit -m ""),我希望能够查看上一次提交的注释,以便于记忆自己所做的进展。是否有一种简单的方法可以通过命令行直接访问最近一次的提交信息?(我在使用Windows系统。)


6
如果这是一个常规操作,可以为你选择的解决方案或命令行创建一个别名(例如 wherewasi ;-))。你也可以包括分支信息。 - Philip Oakley
12个回答

1036
git show

这是最快的打法,但同时也会显示差异。

git log -1

快速且简单。

git log -1 --pretty=%B

如果你只需要提交信息而不需要其他内容。


3
%B 格式是我需要的,可以使提交信息不缩进。是的,@Juh_,即使 git gui 不会自动换行,也最好在提交信息中使用80个字符的文本,而不是每段一行。 - Peter Cordes
6
你可以使用 git log -1 --pretty=%B | cat 来显示完整的消息,但正如Peter所说,你应该尽量将其保持在80个字符以内。 - Ruckus T-Boom
5
如果你想让提交信息换行,只需将输出导向 cat 命令即可,示例命令如下:git log -1 --pretty= | cat - kosgeinsky
13
有人想要了解更多关于百分号占位符的信息,请参阅以下网址:https://www.kernel.org/pub/software/scm/git/docs/git-log.html#_pretty_formats (向下滚动到“格式:<字符串>”部分)。 - imme
16
如果按照man文档中建议,在%B前加上format:前缀,输出的末尾就不会显示额外的空行:git log -1 --pretty=format:%B - Mariano Ruiz
显示剩余3条评论

133

一般来说:

git log -n

将向您展示最后n个提交消息

更加优雅的方式是 - 如果您想快速查看您的提交历史

git log --oneline -n

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

您可以将其保存为git别名或shell别名以缩短命令。例如,我在我的shell中将其命名为glog,然后可以使用glog -10查看我的最近10个提交信息。


1
优雅的设计让我的一天变得美好。 - Adam Bubela

89
你可以使用
git show -s --format=%s

这里的--format选项启用了各种打印选项,请参见此处文档。具体来说,%s表示“主题”。此外,-s代表--no-patch,可以抑制差异内容。

我经常使用。

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

其中%h表示提交的短哈希

另一种方式是

git show-branch --no-name HEAD

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

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

您可以在github上找到它。

enter image description here


4
对于多个提交来说,我认为这个答案比被接受的回答要好。对我来说它不会产生不必要的换行符。可以通过包含“-5”,即git show -s --format=%s -5来显示过去5次提交。 - Sigmatics
它不会在提交中显示换行符,因此适合希望整个提交在一行中的人。 - Ding-Yi Chen

36

git log -1可以显示最新的提交消息,如果你只想要显示sha1和关联的提交消息,则使用git log -1 --oneline


12

git log -1 branch_name会显示指定分支的最后一条提交信息(不一定是当前所在的分支)。


11
如果你只想查看提交信息的主题(第一行)
git log -1 --format=%s

此前没有任何答案记录该情况,或者可以参考nos的解决方案

参考资料:


10

如果您想要更易读的内容,可以运行以下命令:

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

解决方案在这里找到。


8

首先执行git log -1 --pretty='%s'

但以下的命令涵盖了所有情况:

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

  • 没有不必要的空格
  • 丢弃合并提交(merge commits)
  • 没有提交ID、日期,仅显示消息。

复制粘贴到终端中查看效果。


注意:%s 仅包括提交消息的主题。 - CervEd

3
我已经完成了这个任务。
git reflog -1 | sed 's/^.*: //'

2
这个命令会获取最后一次提交的消息:
git log -1 --oneline --format=%s | sed 's/^.*: //'

输出类似于:
Create FUNDING.yml

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接