【问题标题】:GIT Weekly ActivityGIT 每周活动
【发布时间】:2012-11-12 22:13:02
【问题描述】:

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

目的是获得特定时间范围内开发人员活动的总体概览

  • 开始日期
  • 结束日期
  • 开发者
  • 提交
  • 添加代码
  • 已删除代码

如果我可以将这些信息导出到 csv 中,那就太好了

[some-script/command] > weekly-git-log.csv

【问题讨论】:

    标签: git report git-diff git-bash git-log


    【解决方案1】:

    我会从git log --since="1 week ago" --until="now"customize it to your heart's content 开始。

    例子:

    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 文件,我会将 --format 中的逗号更改为无法在键盘上定期输入的一些晦涩字符,擦掉消息中的所有逗号,然后用逗号代替那个晦涩的字符。

    或者,如果您不需要该消息,也可以取消格式中的%s

    【讨论】:

    • 谢谢!是的,我已经指定了我正在寻找的内容: - 开始日期 - 结束日期 - 开发人员 - 提交 - 添加的代码 - 删除的代码 您的命令只包括其中的一些。我需要使用以下信息生成表:日期 |开发者姓名 |已添加 |已删除|提交消息最​​终我不需要设置开始和结束日期,因为我可以在 Excel 中轻松过滤。
    • 添加了一个脚本,可以让你更接近你想要的。再次,查看 git log 手册页,尤其是格式化部分,并根据您的需要微调此脚本。
    【解决方案2】:
    git log --since="1 week ago" --until="now" \
    --format="%an,%ct,%s" > git_log_11_17_2012-11_24_2012.csv
    

    请注意,“1 周前”可以完全使用“1 周前”文本来完成(因此它不是真实日期的占位符,尽管也可以使用),这要归功于 approxidate

    【讨论】:

    • 谢谢!和上一个完全一样。我需要生成更复杂的表。顺便说一句:编辑您的命令,而不是仅用于一行。现在它不适用于复制粘贴。
    • 我添加了“\”行继续符。顺便说一句,它与以前的不完全相同,例如以前的“=”丢失了(但在我发布我的之后添加了......)
    【解决方案3】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 2022-11-01
      • 1970-01-01
      • 2021-06-17
      • 2014-10-30
      相关资源
      最近更新 更多