【问题标题】:How can I get the total lines committed today in git?如何获得今天在 git 中提交的总行数?
【发布时间】:2013-08-22 01:55:35
【问题描述】:

我在 git 上找到了 repo 一直存在的一般统计数据,但我有兴趣做类似的事情:

git today 

并得到诸如 # of commits、# of lines 等按作者细分的内容。

我最感兴趣的是当前用户的行数。我可以自己结合其他事情的结果

【问题讨论】:

标签: git


【解决方案1】:

这是基于 RJo 回答的完整脚本:

#!/bin/bash
set -e
TMPDIR=.tmp.gitstat.$$
mkdir $TMPDIR
trap "rm -fr $TMPDIR" EXIT
gitstats -c commit_begin=$(git log --pretty=format:%h --since $(date +%Y-%m-%d):00:00 | tail -1) . $TMPDIR
lynx $TMPDIR/index.html

(显然,将 lynx 替换为您喜欢的浏览器,并将脚本更改为等待它,或者不删除创建的目录,如果它在后台运行)。

请注意,没有错误检查,如果只有一次提交,特别是 gitstats 阻塞(git shortlog -s COMMIT..HEAD 必须为非空)。

【讨论】:

    【解决方案2】:

    如果您想查看 git 存储库活动的图形表示,请使用 gitstats 实用程序:http://gitstats.sourceforge.net/

    以下所有命令均假定使用 bash。通过运行以下命令,您可以获得与今天相同日期的第一个提交。

    > first_commit=`git log --pretty=format:"%h" --since "$(date +%Y-%m%-d):00:00"
    

    以下命令将处理 git 存储库以进行统计:

    > gitstats -c commit_begin=<COMMIT_ID> . target/gitstats
    

    通过结合这些我们可以得到一个简单的命令,如果我们愿意,我们可以设置为别名:

    > first_commit=`git log --pretty=format:"%h" --since "$(date +%Y-%m%-d):00:00" | tail -n1`; gitstats -c commit_begin=$first_commit . target/gitstats
    

    然后用你喜欢的浏览器打开./target/gitstats/index.html

    【讨论】:

      【解决方案3】:

      嗯,这需要编写一些脚本才能完成,但我建议您先查看此命令的输出:

      git log --format="format:%ae" --numstat
      

      还要注意git log 也可以接受--after=&lt;date&gt; 参数。

      【讨论】:

      • 例如,git log --since "$(date +%Y-%m-%d):00:00" 将获得自午夜以来的所有提交(假设 bash 或其他带有 $() 命令替换的 shell)
      • 不错的@Useless,我将更改我的答案以改用此脚本。
      猜你喜欢
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多