【问题标题】:Git commit count a day一天的 Git 提交计数
【发布时间】:2016-06-16 14:12:03
【问题描述】:

我有一个名为development 的分支。现在我想知道每天(即每天)发生了多少次提交。

我想要提交的总次数(即一天内的提交次数。

我试过这个命令,但它从分支中计算所有提交

git shortlog -s -n

我的问题是统计一天的提交次数

【问题讨论】:

    标签: git commit


    【解决方案1】:

    我试过了:

    git 日志 | grep 日期 | awk '{打印" : "$4" "$3" "$6}' | uniq -c

    而且它有效。你会得到类似的东西:

       5  : 3 Mar 2016
       4  : 2 Mar 2016
       8  : 1 Mar 2016
       [...]
    

    我找到了命令here

    【讨论】:

    • 结合 grep "你的日期"。这仅适用于特定的一天。上面的解决方案有范围。
    • 这似乎是不必要的浪费,因为它传递了一个正常的、完整的git log,而不是每次提交所需的最小值。此外,您不要 sort,这可能会导致 uniq 返回糟糕的结果和/或对您大喊大叫,因为作者(您在此处显示的内容)和提交日期都不需要按时间顺序排列。
    【解决方案2】:

    试试这个:

    $ git rev-list --count --since=<start-date> --before=<end-date> <ref>
    

    例如,要获取当前分支中昨天完成的提交次数:

    $ git rev-list --count --since=yesterday --before=today HEAD
    

    也接受绝对日期:

    $ git rev-list --count --since=2016-03-02 --before=2016-03-03 HEAD
    

    【讨论】:

      【解决方案3】:

      这回答了所问问题的“每天”方面,它似乎无法决定是要“每天”表示多个还是仅“一天”表示单一。 ;-) 显然,“per day”是“a day”的超集,所以这对展示很有用; grep 剩下的就可以了!

      又短又甜:

      git log --date=short --pretty=format:%ad | sort | uniq -c
      

      示例输出:

            1 2017-12-08
            6 2017-12-26
           12 2018-01-01
           13 2018-01-02
           10 2018-01-14
            7 2018-01-17
            5 2018-01-18
      

      解释:

      • git log 显然是一个先决条件。
      • --date=short 将我们的 date-format 设置为 YYYY-MM-DD,这 (A) 是我们所需要的, (B) 随后将按字母顺序将 sort 按时间顺序排列。
      • --pretty=format:%ad 告诉git,我们只想在我们首选的date-format 中获取每个提交的aauthor date。如果你愿意,你可以使用cd 代替commit date,但是一旦你使用cherry-pickrebase 等,它的用处就会大大降低。
      • uniq 需要 | sort,因为它只检查相邻的重复项。当然,我们几乎可以肯定无论如何都希望日期排在最后。
      • | uniq -c 计算每个 YYYY-MM-DD 的相邻重复项的数量,并将其添加到日期之前。

      喜剧奖励:如果您希望将其作为制表符分隔的日期然后计数,以便输入到图形引擎或类似引擎中,那么只需将上述结果输入

      sed 's:^  *\([1-9][0-9]*\) \([1-9][0-9-]*\)$:\2\t\1:g'
      

      就这么简单……!

      或者,通过使用awk 而不是sed 来避免发疯:

      awk 'BEGIN{OFS = "\t"} {print $2, $1}'
      

      【讨论】:

        猜你喜欢
        • 2018-10-02
        • 2012-11-14
        • 2012-07-24
        • 2012-02-21
        • 2013-08-22
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 2015-04-19
        相关资源
        最近更新 更多