提问人:JJD 提问时间:12/19/2010 最后编辑:JJD 更新时间:9/15/2023 访问量:300132
如何仅输出第一行的 git log?
How to output git log with the first line only?
问:
我正在尝试自定义 .我希望所有提交都显示在一行中。每行应仅显示提交消息的第一行。
我发现这应该可以解决问题,但在我的计算机上,它显示了完整的日志(除了时间戳)。git log
git log --pretty=short
git log
此外,我尝试使用手册页中定义的占位符。不过,我找不到缩短日志消息的命令。我尝试了这一行,它在一行中显示了短路哈希和完整消息。git log --pretty=format:'%h : %s'
%h
%s
我在 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.
答:
做你想做的事吗?git log --oneline
如果你想一直以这种方式使用,你可以通过以下方式添加 git 别名git log
git config --global alias.log log --oneline
之后将打印通常由git log
git log --oneline
评论
"log --oneline"
你试过这个吗?
git log --oneline
它是 的别名,显示“short sha”和“short description”,例如:git log --pretty=oneline --abbrev-commit
9bee8857 Write more code
831fdd6e Write some code Second line of message
问题是您在提交消息的第一行之后缺少一个空行。上面的命令通常对我有用,但我只是在没有空第二行的提交上进行了测试。我得到了和你一样的结果:整个消息都在一行上。
空的第二行是 git commit 消息中的标准。你看到的行为可能是故意实施的。
提交消息的第一行是简短的描述。如果你不能在一行中使用它,你可以使用几行,但 git 认为第一个空行之前的所有内容都是“简短描述”。 打印整个简短描述,因此所有 3 行。oneline
评论
git log
git log --oneline
cut
awk
%
'%s'
您可以定义全局别名,以便以更舒适的方式调用短日志:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
然后你可以使用它(如果你启用了它,它甚至可以与自动完成一起使用)。git slog
通过创建别名更好、更容易地 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/
评论
git log --color --graph --pretty=format:"%%Cred%%h%%Creset -%%C(yellow)%%d%%Creset %%s %%Cgreen(%%cr) %%C(bold blue)<%%an>%%Creset" --abbrev-commit %1
如果没有提交消息,只有哈希值:
git log --pretty=oneline | awk '{print $1}'
评论
git log --pretty=format:"%H"
git rev-list HEAD
如果您需要打印不带提交哈希的主题行:
git log --pretty=format:%s
这将产生如下内容:
Upgrade framework to v2
Add a new module
Hotfix for the production crash
正如 Mathieu 所提到的,你可以只用于身体,也可以同时用于两者。%b
%B
评论
git log --format="%H" -n 1
使用上面的命令获取 commitid,希望这会有所帮助。
评论
如果您只想要消息的第一行(主题):
git log --pretty=format:"%s"
如果您希望此分支上的所有消息返回到 master:
git log --pretty=format:"%s" master..HEAD
最后但并非最不重要的一点是,如果你想为快速降价发行说明添加一些小项目符号:
git log --pretty=format:"- %s" master..HEAD
评论
如果要打印并且仅打印commit-id
commit message
git log --pretty=format:"%h %s"
%h
是 的简写,%s
是hash_id
subjectName[message_name]
您可以通过以下命令显示日期:commit-id
message
git log --pretty=format:"%h %s %C(yellow)(%cr)"
%C
是颜色的简写,例如,我想用不同的颜色显示日期。(red,green,blue, yellow,...etc)
%cr
是 committer date 的简写,相对
或者,您可以使用此命令进行打印和提交消息:hash_id
first word
git log --oneline | awk '{print $1 " " $2}'
或
git log --oneline
评论
%s
是主题,而不是完整的消息。short
oneline
oneline
%h : %s
%s
oneline
%s