我想生成一个每周 GIT 报告,我可以在其中查看每个开发人员在特定时间范围内提交和删除了多少代码。
目的是获得特定时间范围内开发人员活动的总体概述
- 开始日期
- 结束日期
- 开发商
- 提交
- 添加代码
- 删除代码
如果我可以将这些信息导出到 csv 中,那就太好了
[some-script/command] > weekly-git-log.csv
我会开始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
我在消息之后添加/删除了行,因为它更容易在脚本中执行(我对 bash 不是很好)。这应该是你想做的事情的一个很好的基础。(调用./script.sh >file.csv
输出到文件)
请注意,提交消息中的逗号会破坏您的 csv 文件,我会将 csv 文件中的逗号更改为--format
无法在键盘上定期键入的一些晦涩字符,擦掉消息中的所有逗号,然后用逗号替换那个晦涩的字符特点。
或者,%s
如果您不需要消息,也可以取消格式。
特定日期范围内特定用户的更改列表 - 每个文件的详细信息
git log --pretty=format:"%h,%an,%ad,%s" --author=example@email.com --since=2012-11-19 --until=2012-11-20 --date=short --numstat
特定日期范围内特定用户的更改列表 - 提交摘要
git log --pretty=format:"%h,%an,%ad,%s" --author=example@email.com --since=2012-11-19 --until=2012-11-20 --date=short --shortstat
最终短版
git log --pretty=format:"%Cgreen%ad%x09%Cblue%s" --date=short --author=example@email.com --shortstat --since=2012-11-19 --until=2012-11-20
git log --since="1 week ago" --until="now" \
--format="%an,%ct,%s" > git_log_11_17_2012-11_24_2012.csv
请注意,“1 周前”可以使用“1 周前”的确切文本来完成(因此它不是真实日期的占位符,尽管也可以使用)感谢 approxidate