我需要获取格式化为JSON的git log命令的输出。我喜欢Git log output to XML, JSON, or YAML?中建议的方法,使用命令here在顶部使用自定义git log pretty formatter和轻薄的perl处理层:
git log \
--pretty=format:'{%n "commit": "%H",%n "author": "%an <%ae>",%n "date": "%ad",%n "message": "%f"%n},' \
$@ | \
perl -pe 'BEGIN{print "["}; END{print "]\n"}' | \
perl -pe 's/},]/}]/'
这对于获取这些特定字段非常有用,但我还需要使用JSON输出中包含的--name-status标志返回的已更改文件列表。
我尝试了各种方法,但我对如何解决这个问题感到茫然。我的直觉告诉我,我错过了一些明显的东西。有什么想法吗?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
我对Perl知之甚少。这是我获取提交的已更改文件的方法。希望它有所帮助。
git log -1 <sha1> --pretty=%h --name-only | tail -n +3