Подтвердить что ты не робот

Как найти количество файлов, измененных с одного фиксации на другой в git

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

4b9b3361

Ответ 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 ""