1

我想知道如何创建报告。

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

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

我该怎么做?

例子:

报告 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:452013-09-16 15:00:37并且文件已更改

Message commit 1
    e.php
    j.txt

Message commit 2
    ka.rb
    asdf.jsp

... the another ones
4

1 回答 1

2

这是:

我在git repo 上测试了 git 本身的那些:

  • 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语法只能追溯到 90 天。

一种更强大的方法是要求git rev-list获得正确的 SHA1 以git diff供使用:(
但这仅适用于类 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"
    
于 2013-09-05T07:04:38.000 回答