3

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

git today 

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

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

4

3 回答 3

3

如果您想查看 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用你喜欢的浏览器打开

于 2013-08-20T06:05:56.690 回答
2

好吧,这将需要一些脚本来完成,但我建议您首先查看此命令的输出:

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

并且还要注意,git log也可以带--after=<date>参数。

于 2013-08-20T06:01:41.227 回答
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必须是非空的)阻塞。

于 2013-08-21T08:11:15.163 回答