git:列出一天(或周/月......)添加/修改的所有文件

thi*_*ias 43 git git-log

给定一段时间(例如一天,一周,一个月),是否可以列出此时修改或添加的所有文件?

ing*_*ger 39

我会使用diff来直接生成文件列表,例如:

git diff --name-only "@{3 days ago}" "@{2 days ago}"

changelog.txt
newfile.txt
Run Code Online (Sandbox Code Playgroud)

如果您对哪个文件被修改或添加感到好奇,请使用--name-status代替:

git diff --name-status "@{3 days ago}" "@{2 days ago}"

M       changelog.txt
A       newfile.txt
Run Code Online (Sandbox Code Playgroud)

  • 请注意,@ {...}表示法可能不可靠 - 它可能具有比实际提交更粗糙的粒度 - 因为它使用rev-log条目将日期映射到提交,并且条目仅添加到rev-​​log中_your_ actions(例如,并非拉动中的每个提交). (2认同)

man*_*lds 34

也许这个:

  git log --since="1 day ago" --name-only --pretty=format: | sort | uniq
Run Code Online (Sandbox Code Playgroud)

包括,--until如果你想要一天,一周等.


ans*_*man 21

我使用它来获得一个干净的清单:

git whatchanged --since '04/14/2013' --until '05/22/2014' --oneline --name-only --pretty=format: | sort | uniq >> changedlist.txt
Run Code Online (Sandbox Code Playgroud)

  • 在当前版本的 Git 中,不推荐使用 `git Whatchanged` 并鼓励使用 `git log`。https://git-scm.com/docs/git-whatchanged/2.21.0 (2认同)

Dan*_*ruz 11

Git whatchanged应该给你你想要的东西,列出了被修改的文件.

以下是使用Git源代码的示例:

$ git --version
git version 1.7.8.rc0.35.gee6df
$ git whatchanged --since '10/27/2011' --until '10/30/2011' --oneline
55e7c0a (squash) test for previous
:100755 100755 dbf623b... 53905a2... M  t/t8006-blame-textconv.sh
2564aa4 blame.c: Properly initialize strbuf after calling, textconv_object()
:100644 100644 173f286... e39d986... M  builtin/blame.c
e8e1c29 Update draft release notes to 1.7.8
:100644 100644 3045245... ddb8d37... M  Documentation/RelNotes/1.7.8.txt
8debf69 clone: Quote user supplied path in a single quote pair
:100644 100644 488f48e... efe8b6c... M  builtin/clone.c
Run Code Online (Sandbox Code Playgroud)

  • 在当前版本的 Git 中,不推荐使用 `git Whatchanged` 并鼓励使用 `git log`。https://git-scm.com/docs/git-whatchanged/2.21.0 (3认同)

met*_*ple 6

这里还有一个没有空行:

git log --after="2015-11-05T16:36:00-02:00" --before="2015-11-15T16:36:00-02:00" --pretty=format:"" --name-only | sed '/^\s*$/d' | sort | uniq -u
Run Code Online (Sandbox Code Playgroud)


yas*_*sar 5

尝试:

git log --since="2 days ago" --until="1 days ago"

如果您省略--until,则将获得最近两天的日志。您还可以优化几周,几个月等。还可以将git diff与--since和--until参数一起使用。在输出格式上做一点工作就可以了。