GIT每周活动

Pav*_*nar 6 git report git-diff git-log git-bash

我想生成每周GIT报告,在那里我可以看到每个开发人员在特定时间范围内提交和删除了多少代码.

目的是在特定时间范围内概述开发人员活动

  • 开始日期
  • 结束日期
  • 开发人员
  • 提交
  • 添加了代码
  • 删除了代码

如果我可以将这些信息导出到csv中会很棒

[some-script/command] > weekly-git-log.csv
Run Code Online (Sandbox Code Playgroud)

Rob*_*ani 6

我开始git log --since="1 week ago" --until="now"根据你的内心定制它.

例:

git log --since="1 week ago" --until="now" --format="%an,%ct,%s" > weekly-git-log.csv

您对CSV文件中存储的内容并不十分具体,所以我给您一个非常一般的答案,让您自己填写详细信息.

编辑:

如果你想要添加/删除行,你将不得不变得有点发烧并使用bash脚本:

#!/bin/bash
IFS=$'\n'
DATA=(`git log --since="1 week ago" --until="now" --format="%ct,%an,%s,"`)
LINES=(`git log --since="1 week ago" --until="now" --pretty=tformat: --shortstat | gawk '(NF > 0){ printf "%s,%s\n",$1,$4 }' -`)

i=0
while [ $i -lt ${#DATA[@]} ]; do
    echo "${DATA[$i]}${LINES[$i]}"
    i=$[i + 1]
done
Run Code Online (Sandbox Code Playgroud)

我在消息之后添加/删除行,因为它在脚本中更容易(我对bash不是很好).这应该是你想要做的很好的基础.(调用./script.sh >file.csv输出到文件)

请注意,提交消息中的逗号将破坏您的csv文件,我会将逗号更改--format为某些不能在键盘上定期输入的模糊字符,擦除消息中的任何逗号,然后用逗号替换该模糊字符.

或者,%s如果您不需要该消息,您也可以使用该格式.


Pav*_*nar 3

特定用户在特定日期范围内的更改列表 - 每个文件详细信息

git log --pretty=format:"%h,%an,%ad,%s" --author=example@email.com --since=2012-11-19 --until=2012-11-20 --date=short --numstat
Run Code Online (Sandbox Code Playgroud)

特定日期范围内特定用户的更改列表 - 提交摘要

git log --pretty=format:"%h,%an,%ad,%s" --author=example@email.com --since=2012-11-19 --until=2012-11-20 --date=short --shortstat
Run Code Online (Sandbox Code Playgroud)

最终简短版本

git log --pretty=format:"%Cgreen%ad%x09%Cblue%s" --date=short --author=example@email.com --shortstat --since=2012-11-19 --until=2012-11-20
Run Code Online (Sandbox Code Playgroud)