【问题标题】:How do I generate a git commit log for the last month, and export it as CSV?如何生成上个月的 git 提交日志,并将其导出为 CSV?
【发布时间】:2012-05-12 04:21:33
【问题描述】:

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

【问题讨论】:

    标签: git csv github


    【解决方案1】:

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

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

    有关更多选项,请参阅Git log man page 的 PRETTY FORMATS 部分。

    【讨论】:

    • 完美运行!谢谢你。有没有办法包括(在单独的列中)哪个文件受到影响/编辑?
    • 这个比较棘手,因为一般来说,一次提交影响的文件不止一个。您想要逐行 file (因此同一提交多行)还是(分号分隔?)每次提交受影响的文件列表?无论如何,我猜这将涉及一个 shell 脚本。
    • 这很好。但是最后一个月的1号到最后一天还有选项吗?
    • 如果提交消息有逗号,添加引号会改进输出 csv 文件。 "%h","%an","%ar","%s"
    • 我的结果格式如下:Commit-ID,User,x hours ago,first line of commit message
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 合并提交对我来说搞乱了输出,添加 --no-merges 参数有助于解决这个问题。对于那些包含逗号的提交文本,我还使用%x09 作为制表符分隔符而不是逗号。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2019-02-14
      • 2016-06-27
      • 2019-01-04
      • 2012-01-20
      • 2013-10-11
      相关资源
      最近更新 更多