fok*_*oka 7 git commit-message git-log
如何打印 git commits 以仅打印正文(没有标题的提交消息)但在一行中?所以提交正文行被连接起来,可能用空格分隔,并打印为一次提交的一行。
例如,有两个提交 A 和 B,命令:
$ git log --format=%b
Run Code Online (Sandbox Code Playgroud)
印刷:
Commit A, line A.1
Commit A, line A.2
Commit B, line B.1
Commit B, line B.2
Run Code Online (Sandbox Code Playgroud)
但我想得到:
Commit A, line A.1 Commit A, line A.2
Commit B, line B.1 Commit B, line B.2
Run Code Online (Sandbox Code Playgroud)
git rev-list master |
while read sha1; do
git show -s --format='%B' $sha1 | tr -d '\n'; echo
done
Run Code Online (Sandbox Code Playgroud)
让我解释:
git rev-list master
Run Code Online (Sandbox Code Playgroud)
列出分支中提交的 SHA1 ID。
while read sha1; do
Run Code Online (Sandbox Code Playgroud)
对每个 SHA1 运行一个循环。
git show -s --format='%B' $sha1
Run Code Online (Sandbox Code Playgroud)
显示提交的正文。
tr -d '\n'
Run Code Online (Sandbox Code Playgroud)
删除所有行尾。
echo
Run Code Online (Sandbox Code Playgroud)
在末尾添加一个换行符。