列出两个日期之间(由任何人)添加的新文件

时间:2012-11-13 23:25:04

标签: git

如何列出两个日期之间(或两次提交之间)提交中新添加的文件?我想看看

  1. 文件路径
  2. 提交者/提交消息
  3. 提交参考

3 个答案:

答案 0 :(得分:6)

这就是我使用的:

git log --diff-filter=A --name-only --pretty=oneline --abbrev-commit ref1..ref2

此外,输出很容易解析。删除--abbrev-commit允许您将SHA-1用于某项工作。

答案 1 :(得分:5)

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

答案 2 :(得分:3)

您也可以使用git 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获取此信息(他们可能在引擎盖下使用相同的基本信息),但我还没弄明白。