git: список всех файлов, добавленных / измененных за день (или неделю / месяц ...) - PullRequest
41 голосов
/ 05 ноября 2011

При заданном периоде времени (например, день, неделя, месяц) можно ли перечислить все файлы, которые были изменены или добавлены за это время?

Ответы [ 6 ]

36 голосов
/ 05 ноября 2011

Я бы использовал diff, чтобы получить список файлов напрямую, например:

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

changelog.txt
newfile.txt

Если вам интересно, какой файл был изменен или добавлен, используйте вместо него --name-status:

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

M       changelog.txt
A       newfile.txt
30 голосов
/ 05 ноября 2011

Может быть, это:

  git log --since="1 day ago" --name-only --pretty=format: | sort | uniq

Включите --until, если хотите на день, неделю и т. Д.

20 голосов
/ 22 мая 2014

Я использую это, чтобы получить чистый список:

git whatchanged --since '04/14/2013' --until '05/22/2014' --oneline --name-only --pretty=format: | sort | uniq >> changedlist.txt
11 голосов
/ 05 ноября 2011

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
4 голосов
/ 17 ноября 2015

Вот еще одна без пустых строк:

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
4 голосов
/ 05 ноября 2011

Попробуйте:

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

Если вы опустите --until, вы получите журналы за последние два дня.Вы также можете указать недели, месяцы и т. Д. Вы также можете использовать git diff с параметрами --since и --until.Немного поработайте над форматированием вывода, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...