422

我正在尝试自定义git log. 我希望所有提交都显示在一行中。每行应该只显示提交消息的第一行。
发现git log --pretty=short应该可以解决问题,但在我的计算机上它会显示完整的日志git log(除了时间戳)。

此外,我尝试使用手册页中定义的占位符。不过,我找不到缩短日志消息的命令。我尝试了这一行,它在一行git log --pretty=format:'%h : %s'中显示了短散列%h和完整消息%s

git version 1.7.3.1.msysgit.0在 Vista 上使用。


也许这与我编写提交消息的方式有关。这是一个例子:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

因此,对于给出的示例,我只想在输出之前Added some functionality.加上缩短的哈希。

4

10 回答 10

683

你试过这个吗?

git log --oneline 

它是 的别名git log --pretty=oneline --abbrev-commit,并显示“short sha”和“short description”,例如:

9bee8857 Write more code
831fdd6e Write some code Second line of message

问题是您在提交消息的第一行之后缺少一个空行。上面的命令通常对我有用,但我只是在没有空第二行的提交上进行了测试。我得到了和你一样的结果:一条线上的整个消息。

空的第二行是 git 提交消息中的标准。您看到的行为可能是故意实施的。

提交消息的第一行是一个简短的描述。如果你不能在一行中创建它,你可以使用多个,但 git 将第一个空行之前的所有内容视为“简短描述”。oneline打印整个简短描述,所以你所有的 3 行。

于 2010-12-20T10:43:38.263 回答
204

git log --oneline你想做的事吗?

于 2010-12-18T17:43:53.167 回答
89

如果您不需要哈希,只需要第一行(主题行):

git log --pretty=format:%s
于 2018-08-24T03:24:40.557 回答
63

通过创建别名更好简单的 git log 。一次会话将下面的代码粘贴到终端一次。将代码粘贴到 zshrc 或 bash 配置文件以使其持久化。

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

输出

git lg

输出改变的行

git lg -p

或者(推荐)
将此代码粘贴到全局 .gitconfig 文件

[alias]
  lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

进一步阅读。
https://coderwall.com/p/euwpig/a-better-git-log
进阶阅读。
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/

于 2016-04-19T23:21:01.490 回答
29

您可以定义一个全局别名,以便以更舒适的方式调用短日志:

git config --global alias.slog "log --pretty=oneline --abbrev-commit"

然后你可以使用它来调用它git slog(如果你启用了它,它甚至可以与自动完成一起使用)。

于 2013-09-13T15:42:40.333 回答
11

没有提交消息,只有哈希:

git log --pretty=oneline | awk '{print $1}'
于 2016-06-14T22:17:29.780 回答
5

如果您只想要消息的第一行(主题):

git log --pretty=format:"%s"

如果您希望此分支上的所有消息都返回到 master:

git log --pretty=format:"%s" master..HEAD

最后但并非最不重要的一点是,如果您想为快速降价发行说明添加小项目符号:

git log --pretty=format:"- %s" master..HEAD
于 2020-08-28T15:51:03.223 回答
3
git log --format="%H" -n 1 

使用上述命令获取commitid,希望对您有所帮助。

于 2020-07-22T04:22:06.393 回答
1

如果您只想打印提交 ID 和提交消息

git log --oneline | awk '{print $1 " " $2}'

或者你可以使用

git log --oneline

于 2021-09-23T03:59:29.023 回答
-11

如果您想始终git log以这种方式使用,您可以通过添加 git 别名

git config --global alias.log log --oneline

之后git log将打印通常会打印的内容git log --oneline

于 2010-12-19T07:55:37.673 回答