我想知道如何创建报告。
我需要的第一份报告是从特定用户从开始日期到结束日期时间更改的所有文件。
第二个,与第一个类似,但我需要所有消息提交,并且文件从特定用户从开始日期更改为结束日期时间。
我该怎么做?
示例:
用户
文件已从 2013-07-03 12:34:45 更改为 2013-09-16 15:00:37
a.php
b.txt
c.ini
d.rb
... and the other ones
用户
提交从 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
答案 0 :(得分:2)
这是:
--author
”过滤器
我在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-list
为git 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"