我该如何列出在两个日期(或两个提交之间)的提交中新增的文件?我想看到:
- 文件路径
- 提交者/提交信息
- 提交引用
这是我使用的内容:
git log --diff-filter=A --name-only --pretty=oneline --abbrev-commit ref1..ref2
--abbrev-commit
选项可以使用 SHA-1 来进行某些任务。git log --stat
命令可以给出一个很好的提交摘要,其中包含有关更改文件的详细信息:
commit bde0ce475144ec85a1cb4ffeba04815412a07119
Author: Stephen Holdaway <xxxxx@xxxxx.com>
Date: Thu Sep 20 13:55:12 2012 +1200
fix default rotation issue
Menus/MainMenuViewController.m | 17 +++++++++++++----
Menus/PostGameViewController.m | 14 +++++++++++++-
Menus/StatsMenuController.m | 10 +++++-----
4 files changed, 31 insertions(+), 11 deletions(-)
git log --since "10 Sep 2012" --until "12 Nov 2012" --stat
这是两次提交之间的内容:
git log --stat xxxxxxx..xxxxxxx
--stat-name-width=1000 --stat-width=1000
来防止路径被缩短。你也可以添加 --name-only
以使输出更加清晰。详见 Making git diff --stat show full file path 获取更多细节。 - Stecman--diff-filter=A
,但是除非您添加 --name-status
(在这种情况下输出与 @atkretsch 发布的答案相同),否则输出不是特别清晰。 - Stecmangit show
。它类似于git log
,但有一个--name-status
参数,可以让你一次得到路径名和添加/修改/删除的标志(注意,第一个答案中描述的git log
不仅限于新文件,并且不显示状态指示器)。$ git show --pretty=fuller --name-status HEAD^..HEAD
commit 3c92149119e69b4520b4ea317f221aade9f41b0e
Author: John Doe <xxxx@xxxxxx>
AuthorDate: Fri Nov 9 15:46:05 2012 -0600
Commit: John Doe <xxxx@xxxxxx>
CommitDate: Fri Nov 9 15:46:05 2012 -0600
Added some files, modified some other files
A src/main/java/com/test/app/NewFile1.java
A src/main/java/com/test/app/NewFile2.java
M src/main/java/com/test/app/OldFile1.java
M src/main/java/com/test/app/OldFile2.java
git log
获取这些信息(它们可能在幕后使用相同的基本信息),但我还没有弄清楚。