如何生成有关用户贡献的报告?

时间:2013-09-04 18:59:23

标签: git github report reporting

我想知道如何创建报告。

我需要的第一份报告是从特定用户从开始日期到结束日期时间更改的所有文件。

第二个,与第一个类似,但我需要所有消息提交,并且文件从特定用户从开始日期更改为结束日期时间。

我该怎么做?

示例:

报告1

用户

文件已从 2013-07-03 12:34:45 更改为 2013-09-16 15:00:37

a.php
b.txt
c.ini
d.rb
... and the other ones

报告2

用户

提交从 2013-07-03 12:34:45 2013-09-16 15:00:37 并且文件已更改

Message commit 1
    e.php
    j.txt

Message commit 2
    ka.rb
    asdf.jsp

... the another ones

1 个答案:

答案 0 :(得分:2)

这是:

我在git repo for git itself上测试了那些:

  • Report1会使用git diff

    C:\Users\VonC\prog\git\git>
    git diff --author="Junio C Hamano" --name-status --pretty=oneline --abbrev-commit master@{"29 Jun 2013"}..master@{"14 Aug 2013"}
    

这并不令人满意,因为它使用的rev-parse syntax只能追溯到90天。

更强大的方法是让git rev-listgit diff使用正确的SHA1:
(但这只适用于类似unix的bash,而不适用于DOS shell)

    VonC@VonCvb /c/Users/VonC/prog/git/git (master)
    $ git diff --author="Junio C Hamano" --name-status --pretty=oneline --abbrev-commit $(git rev-list -n 1 --before="10 Sep 2012" master) $(git rev-list -n 1 --before="12 Nov 2012" master)
  • Report2会使用git log

    C:\Users\VonC\prog\git\git>
    git log --author="Junio C Hamano" --name-status --pretty=oneline --abbrev-commit --since "10 Sep 2012" --until "12 Nov 2012"