git log
自定义格式。我希望所有提交都显示在一行中。每行应该只显示提交消息的第一行。我发现
git log --pretty=short
应该可以解决问题,但是在我的计算机上,它显示的完整日志与git log
一样(除了时间戳)。此外,我尝试使用手册页中定义的占位符。但是,我找不到缩短日志消息的命令。我尝试了这行
git log --pretty=format:'%h : %s'
,该行在一行中显示了短哈希值%h
和完整消息%s
。与我编写提交消息的方式有关。这是一个例子:#1 楼
您尝试过吗?git log --pretty=oneline --abbrev-commit
问题可能是您在第一行之后缺少空行。上面的命令通常对我有用,但是我只是在没有空第二行的提交上进行了测试。我得到的结果与您相同:整行都在一行上。
空的第二行是git commit消息中的标准。您看到的行为可能是故意实现的。
提交消息的第一行是简短描述。如果不能在一行中使用它,则可以使用多个,但是git会将第一个空行之前的所有内容视为“简短说明”。
oneline
打印整个简短描述,所以您的所有3行。评论
谢谢!您解决了这个谜团:在我的提交消息的第一行之后,我没有空行可以将主题与其余部分分开。不过,如果我可以随意放入或保留它,那就太好了。
– JJD
2010-12-21 9:54
没问题。实际上,您可以随意使用空行。如果您将其保留,则整个消息将成为短消息。我喜欢这个简短描述/详细描述,并且我想将简短描述限制为一行是一个问题,因此需要空行。您总是可以将git log的输出通过管道传递到过滤脚本,但我确实主张用空行写一个简短的描述。
–Gauthier
2010-12-21 10:27
还有git log --oneline --oneline是一起使用的“ --pretty = oneline --abbrev-commit”的内置简写。
–杰里米·洛根(Jeremy Logan)
13年4月23日在21:26
如何摆脱前缀缩短的主题标签?并不是说它不是很漂亮。但不切。那将很尴尬……(顺便说一句数学问题:在存储级别上,正确编码的霍夫曼序列中下一位打开或关闭的几率是多少?提示:=== 50%。)
–短语
2014年5月19日下午3:14
就是那个。哦,我的页面也充满了s,所以我自然为'%s'添加了%。 C-;
–短语
14年7月17日在18:15
#2 楼
git log --oneline
能做什么吗?评论
我不希望将整个提交消息合并到一行。我只想查看每个提交消息的第一行。
– JJD
2010-12-19 11:45
@JJD看到我的回答。
–铁皮科
10月5日7:50
#3 楼
通过创建别名,更好和更容易的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 /
评论
该示例很好地演示了漂亮的格式,但是“下面的代码仅粘贴到终端一次”似乎是错误的,因为它不会为“ git lg”创建别名
–Drone2537
17年7月3日在17:40
请注意,如果您批量执行此命令,请将%替换为%%,将'替换为“”。结果= git log --color --graph --pretty =格式:“ %% Cred %% h %% Creset-%% C(黄色)%% d %% Creset %% s %% Cgreen(%% cr) %% C(粗体蓝色)<%% an> %% Creset” --abbrev-commit%1。您可以将-p传递到此bat文件以获取更改的行
– Dheeraj Bhaskar
3月29日12:20
#4 楼
如果您不希望散列,而只是第一行(主题行):git log --pretty=format:%s
评论
主题的%s; %b代表身体;两者均使用%B(git-scm.com/docs/pretty-formats中的“原始正文”)
– Mathieu CAROFF
1月6日23:21
#5 楼
您可以定义全局别名,以便以更舒适的方式调用简短日志:您已启用它。)
#6 楼
没有提交消息,仅散列:git log --pretty=oneline | awk '{print }'
评论
如果只需要哈希... git log --pretty = format:“%H”
– michael_j_ward
17年1月9日,14:47
如果只希望散列,还可以使用git rev-list HEAD。
–法比奥说恢复莫妮卡
19年5月5日在12:52
#7 楼
git log --format =“%H” -n 1使用上面的命令获取提交ID,希望对您有所帮助。
评论
我使用git log --format =“%h%B” -1,然后在javascript中,我在\ n上分割并采用了第一行(即使没有换行符,该行仍然有效)
–德文·罗德(Devin G Rhode)
9月17日18:41
#8 楼
如果您只希望消息的第一行(主题):git log --pretty=format:"%s"
,并且如果您希望此分支上的所有消息都返回主目录:
尤其重要的是,如果您想为快速降价发布说明添加小项目符号:
git log --pretty=format:"%s" master..HEAD
#9 楼
如果您希望始终以这种方式使用git log
,则可以通过git config --global alias.log log --oneline
添加git别名,之后
git log
将打印通常由git log --oneline
打印的内容评论
这实际上不起作用,因为(A. git别名不能覆盖内置命令名称)和(B.“ log --oneline”周围需要带引号)。
– Max Nanasy
2013年3月15日20:43
评论
%s是主题,不是完整的消息。很难说出您真正想要的是什么。短格式不是全部都在一行上,尽管(惊奇!)单行是。如果oneline和%h:%s不是您想要的,那么这有什么问题呢?特别是,%s是主题,即提交消息的第一行。确实应该是简化版本。您是否可能已经用一条长行提交了该消息,并以自动换行的方式查看了它们?
你完全明白问题是,至少在我的计算机上,oneline和%s无法输出期望的结果。我用提交消息的示例更新了我的帖子。也许有帮助。