如何生成上个月的git commit日志,并将其导出为CSV?


74

有没有一种方法可以生成上个月的git commit日志,并将其导出为CSV文件?我正在寻找可以从命令行或第三方应用程序运行的功能。我想要以下几列:作者,提交日期,主题,文件编辑和哈希。

Answers:


117

您可以使用的--since--pretty选项git log,例如:

git log --since="last month" --pretty=format:'%h,%an,%ar,%s' > log.csv

有关更多选项,请参考Git日志手册页的PRETTY FORMATS部分。


1
完美的作品!谢谢。是否有办法(在单独的列中)包括受影响/编辑的文件?
贾斯汀·杰克逊

2
这比较棘手,因为通常,一个提交会影响多个文件。您是否要按文件逐行(因此同一提交需要多行)或(用分号分隔?)受每次提交影响的文件列表?无论如何,我猜这都会涉及一个shell脚本。
西蒙(Simon)

1
很好 但是,从第一天到最后一天的最后一个月还有其他选择吗?
雨果·德·洪里格2015年

7
如果提交消息中有逗号,则添加引号将改善输出的csv文件。“%h”,“%an”,“%ar”,“%s”
dwenaus

对我来说,结果格式如下:Commit-ID,User,x hours ago,first line of commit message
测试

38

此命令创建一个格式化的CSV,其中包含哈希,用户,日期/时间,描述,更改的文件,插入,删除

git log --pretty=format:'"%h","%an","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv

2
合并提交对我来说是混乱的输出,为此添加了--no-merges参数帮助。%x09对于那些包含逗号的提交文本,我还使用了制表符分隔符而不是逗号。
Emmanuel Touzery 2014年

6

要添加,如果要应用日期范围,请以这种格式“ yyyy-mM-d”添加--after或--before

git log --before="2016-12-1" --pretty=format:'"%h","%an","%ae","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.