打印 git commits 加入一行的正文

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)

phd*_*phd 6

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)

在末尾添加一个换行符。