我试图自定义格式的git日志。我希望所有提交都显示在一行中。每一行应该只显示提交消息的第一行。
我发现git日志——pretty=short应该做的把戏,但在我的电脑上,它显示完整的日志,因为git日志(除了时间戳)。
此外,我尝试使用手册页中定义的占位符。但是,我找不到缩短日志消息的命令。我尝试了这行git log——pretty=format:'%h: %s',它在一行中显示了短散列%hand完整的消息%s。
我使用的是git版本1.7.3.1.msysgit。Vista上0。
也许这与我编写提交消息的方式有关。这里有一个例子:
Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
所以,有了这个例子,我只想输出一些功能。以较短的散列作为前置。
你试过这个吗?
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认为第一个空行之前的所有内容都是“简短描述”。一行打印整个简短的描述,也就是所有的3行。
通过创建别名,git日志变得更好更简单。将下面的代码粘贴到终端只一次会话。将代码粘贴到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/
如果您只想打印commit-id和commit message
Git日志——pretty=format:"%h %s"
%h是hash_id的简写%s是subjectName[message_name]的简写
可以在commit-id和message后面显示日期。
git——漂亮=格式:“%h %s %C(黄色)(%cr)”
%C是颜色的简写,我想用不同的颜色显示日期,例如(红,绿,蓝,黄,等等)。
cr是提交日期的缩写,相对而言
或者你可以使用这个命令打印hash_id和提交消息中的第一个单词:
Git日志——oneline | awk '{打印$1 " " $2}'
Or
git 日志 --oneline