巧用git log汇总工作报告

背景

公司每周末需要提交每天工作内容。 由于每天工作内容基本上都是做feature、改bug, 所以在周五统一从git的迁入日志把自己的日志中摘出来汇总。 这是一个体力活,项目架构有若干个git库,每个git库里面有若干人的工作分支合并进去。 所以这个事情要花费近1个小时来完成。

使用git log命令汇总

git log命令有丰富的参数,在git库目录下面执行这个命令, 就可以汇总我自己一周内每天的日志,并且以CSV格式文件输出:

git log --pretty="%cd,%s" --date=short --since=5.days --committer="Your Name" --no-merges -999 > log.csv

参数详解:

  • --committer 仅显示指定提交者的日志。这里写自己提交代码用的名字即可。
  • --since 仅显示指定时间内的日志。我要显示本周内的,所以是5.days。
  • --no-merges 不显示合并的日志。我只想显示我的日志,不显示合并的日志。
  • --pretty 格式化显示内容。%cd代表提交日期,%s代表提交描述。由于是导出CSV格式,所以用逗号隔开。
  • --date 指定日期格式。short格式是以YYYY-MM-DD格式输出。
  • -n 指定显示最大条数。git log命令的显示结果比较多的时候,会有上下翻页的交互,这样没办法重定向到文件。 所以这里指定最多显示999条数据,就不会有交互,直接输出日志
  • 结尾是一个重定向输出到文件的命令,最终结果会保存在log.csv文件里面。

多个git库需要汇总的话,可以使用批处理脚本,分别在每个库目录下执行命令,重定向到同一个CSV文件中。 汇总后的CSV直接用强大的excel打开,排序,生成图表什么的。