Как найти количество файлов, измененных с одного коммита на другой в git - PullRequest
26 голосов
/ 05 июля 2011

Я работаю над git-репозиторием, который содержит огромное количество файлов, измененных ч / б одним коммитом на другой, как извлечь количество файлов изменений ч / б коммитов.

Ответы [ 5 ]

47 голосов
/ 05 июля 2011

Инструмент git whatchanged показывает сводку файлов, которые были изменены. Сам по себе он перечисляет все коммиты, но вы также можете ограничить его только последними n коммитами:

git whatchanged -1

Для подсчета файлов:

git whatchanged -1 --format=oneline | wc -l

См. git help whatchanged для Подробнее .

15 голосов
/ 05 июля 2011

Помимо перечисленных выше способов вы можете сделать это тоже:

git diff HEAD^..HEAD --name-only - выдаст список файлов, измененных между HEAD и одной ревизией перед HEAD (HEAD^).Вы можете заменить HEAD^ на SHA1 коммита "from" и HEAD на SHA1 коммита "to":

git diff <SHA1-of-from-commit>..<SHA1-of-to-commit> --name-only

Так что если вы передадите выводна wc -l должно быть указано количество файлов, измененных между коммитами.

11 голосов
/ 17 апреля 2015
git show --stat

Это дает список файлов, измененных следующим образом:

1 файл изменен, 1 вставка (+), 1 удаление (-)

При желании вы можете добавить код фиксации, если вы не хотите получать информацию из последних.

git show --stat {commit code without brackets}
3 голосов
/ 05 июля 2011

используйте это:

git log --oneline --name-status <HASH> -1

например:

$ git log --oneline --name-status bb3ae49 -1
M       .vim/spell/en.utf-8.add
M       .vim/spell/en.utf-8.add.spl

это работает так же, как

git whatchanged --oneline --name-status <HASH> -1
2 голосов
/ 25 октября 2016

В окнах:

git whatchanged -1 --format=oneline | find /v /c ""

Важным элементом, связанным с окнами, является то, что вы должны заменить команду wc, используемую в других решениях, следующим:

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