我正在尝试自定义git log. 我希望所有提交都显示在一行中。每行应该只显示提交消息的第一行。 我发现应该可以解决问题,git log --pretty=short但在我的计算机上它会显示完整的日志git log(除了时间戳)。
git log
git log --pretty=short
此外,我尝试使用手册页中定义的占位符。不过,我找不到缩短日志消息的命令。我尝试了这一行,它在一行git log --pretty=format:'%h : %s'中显示了短散列%h和完整消息%s。
git log --pretty=format:'%h : %s'
%h
%s
我git version 1.7.3.1.msysgit.0在 Vista 上使用。
git version 1.7.3.1.msysgit.0
也许这与我编写提交消息的方式有关。这是一个例子:
Added some functionality. + Added print function in Foo class. + Added conversion from foo to baz.
因此,对于给出的示例,我只想在输出之前Added some functionality.加上缩短的哈希。
Added some functionality.
你试过这个吗?
git log --oneline
它是 的别名git log --pretty=oneline --abbrev-commit,并显示“short sha”和“short description”,例如:
git log --pretty=oneline --abbrev-commit
9bee8857 Write more code 831fdd6e Write some code Second line of message
问题是您在提交消息的第一行之后缺少一个空行。上面的命令通常对我有用,但我只是在没有空第二行的提交上进行了测试。我得到了和你一样的结果:一条线上的整个消息。
空的第二行是 git 提交消息中的标准。您看到的行为可能是故意实施的。
提交消息的第一行是一个简短的描述。如果你不能在一行中使用它,你可以使用多个,但 git 认为第一个空行之前的所有内容都是“简短描述”。oneline打印整个简短描述,所以你所有的 3 行。
oneline