Я работаю над репозиторием git, который содержит огромное количество файлов, измененных b/w one commit на другой, как извлечь количество изменений файлов b/w commits.
Как найти количество файлов, измененных с одного фиксации на другой в git
Ответ 1
Инструмент git whatchanged
показывает сводку файлов, которые были изменены. Сам по себе он перечисляет все коммиты, но вы также можете ограничить его только последними n коммитами:
git whatchanged -1
Для подсчета файлов:
git whatchanged -1 --format=oneline | wc -l
Смотрите git help whatchanged
для подробнее.
Ответ 2
Помимо перечисленных выше методов вы также можете сделать это:
git diff HEAD^..HEAD --name-only
- предоставит список файлов, измененных между HEAD
и одной ревизией перед HEAD (HEAD^
). Вы можете заменить HEAD^
на SHA1 "from" commit и HEAD
с помощью SHA1 "to" commit:
git diff <SHA1-of-from-commit>..<SHA1-of-to-commit> --name-only
Итак, если вы передаете вывод на wc -l
, он должен предоставить вам количество файлов, измененных между фиксациями.
Ответ 3
git show --stat
Это приводит к тому, что список файлов изменяется следующим образом:
1 файл изменен, 1 вставка (+), 1 удаление (-)
Необязательно вы можете добавить код фиксации, если вы не хотите получать информацию из последних.
git show --stat {commit code without brackets}
Ответ 4
используйте это:
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
Ответ 5
В окнах:
git whatchanged -1 --format=oneline | find /v /c ""
Важным компонентом для Windows является то, что вы должны заменить команду wc, используемую в других решениях, следующим образом:
| find /v /c ""