我正在尝试以非常特定的格式格式化我的 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 以及我想要的自定义信息?
在 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 选项(如--source)log --format签署人:Issac Trotts
例如可以写
Run Code Online (Sandbox Code Playgroud)git log --format="%H,%S"其中
%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)