我想可靠地解析git标签的注释。
我目前使用“git show --summary”,它会在指向带有另一个标记的提交的标记上产生以下输出。
我想要的是标签名称,标签时间戳和附加到提交的所有标签的标签注释。
我得到的是:
% git show --summary CANCEL_test_annotated3 tag CANCEL_test_annotated3 Tagger: Christian Goetze Date: Sat May 25 09:54:59 2013 -0700 Testing a multiline message body line 1 body line 2 body line 3 tag CANCEL_test_annotated Tagger: Christian Goetze Date: Sat May 25 09:26:56 2013 -0700 Superceding message commit b9dc6956eac2c8abb7ed1f6b556a18debfed909b Author: Christian Goetze Date: Fri May 24 14:35:31 2013 -0700 FIx some cut&paste errors
可以说,解析这个并不困难,但我可能成为带内信息的受害者。
我尝试使用--format,但似乎没有标记注释的格式说明符,标记时间似乎也没有。
那么,做到这一点的正确方法是什么?
答案 0 :(得分:4)
对于原始标记数据,您应该解析此命令的输出。
git cat-file tag <tag-id>
它没有任何&#34;漂亮的印刷&#34;对于人类而言更适合机器解析。
答案 1 :(得分:0)
思路:
git show --color=always
,带内ANSI序列似乎不太可能 - 你可以对--color=always
和--color=never
的结果进行区分,这将使消息体单独存在,差异就是全部标题行。
或单独对每个标记执行git cat-file -p
。