Git 以 --format 格式获取 --source 信息

Kev*_*ert 5 git git-log

我正在尝试以非常特定的格式格式化我的 git 日志。

我最初使用git log --format="%H,%an,%ae,%ad,%p"它会产生以下输出(对于每次提交):

b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,kevin.j.jalbert@gmail.com,Fri Sep 7 14:43:16 2012 -0400,206f23d
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试获取每个提交的引用(即标签/分支)信息。我可以使用git log --source命令查看此信息,这正好显示了我想要的内容(即,位于提交 SHA 之后的 ref):

commit 84deec66f94085ee3a0e6f6204f06296d7a1a903 refs/remotes/origin/HEAD
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Fri Sep 21 17:02:33 2012 -0400

    commit message

commit f1e1b8d11defc48839557db5e54a5a6f7ffe6cad refs/heads/issue_5
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Thu Sep 13 15:34:36 2012 -0400

    commit message

commit d7acdbd957d9b477f8849fd5a37882cdd78d8e1f refs/tags/v0.3.0
Author: Kevin Jalbert <kevin.j.jalbert@gmail.com>
Date:   Wed Sep 12 16:48:46 2012 -0400

    commit message
Run Code Online (Sandbox Code Playgroud)

我想要做的是在原始--format="..."命令的末尾包含此信息,这样我的输出将如下所示:

 b05f827b41856e6f4bcfba20c32f58434ce3a5a6,Kevin Jalbert,kevin.j.jalbert@gmail.com,Fri Sep 7 14:43:16 2012 -0400,206f23d,refs/remotes/origin/HEAD
Run Code Online (Sandbox Code Playgroud)

我似乎找不到任何基于标志引用提交的分支/标签/引用的格式占位符--source。我只是缺少正确的占位符吗?或者是否有另一种方法来格式化/显示 ref 以及我想要的自定义信息?

Von*_*onC 2

在 Git 2.21(2019 年第一季度)中,自定义用户格式“ log --format”学习了%S原子,它代表遍历到达提交的尖端,即--source
我当时在“分支的 Git log 占位符”中提到过。

请参阅Issac Trotts ( )提交的 ad6f028(2019 年 1 月 11 日)。(由Junio C Hamano 合并 -- --提交 a562a11中,2019 年 1 月 29 日)ijt
gitster

log:添加 %S 选项(如--sourcelog --format

签署人:Issac Trotts

例如可以写

git log --format="%H,%S"
Run Code Online (Sandbox Code Playgroud)

其中%S末尾是一个新的占位符,用于打印每个提交的引用(标签/分支)。

使用%d似乎是一种替代方法,但它只显示分支中最后一次提交的引用。

例子:

C:\Users\VonC\git\git>git log --format="%H,%S" origin/maint
53a06cf39b756eddfe4a2a34da93e3d04eb7b728,origin/maint
67af91c47a6672b99e1f742123415f96cbafd19a,origin/maint
a7312d1a28ff3ab0a5a5427b35f01d943103cba8,origin/maint
Run Code Online (Sandbox Code Playgroud)

并且,使用您的格式(带有附加%S--format="%H,%an,%ae,%ad,%p,%S"

C:\Users\VonC\git\git>git log --format="%H,%an,%ae,%ad,%p,%S" origin/maint
53a06cf39b756eddfe4a2a34da93e3d04eb7b728,Johannes Schindelin,johannes.schindelin@gmx.de,Wed Dec 4 23:10:12 2019 +0100,67af91c47a,origin/maint
67af91c47a6672b99e1f742123415f96cbafd19a,Johannes Schindelin,johannes.schindelin@gmx.de,Wed Dec 4 23:09:11 2019 +0100,da72936f54 a7312d1a28,origin/maint
a7312d1a28ff3ab0a5a5427b35f01d943103cba8,Johannes Schindelin,johannes.schindelin@gmx.de,Wed Dec 4 23:07:46 2019 +0100,7fd9fd94fb,origin/maint
Run Code Online (Sandbox Code Playgroud)