Журнал SVN имеет режим "-v", который выводит имена файлов, изменяемых при каждом коммите, например:
jes5199 $ svn log -v -------------------------------------------------- ---------------------- r1 | jes5199 | 2007-01-03 14:39:41 -0800 (ср., 3 января 2007 г.) | 1 строка Измененные пути: A / АВТОРЫ A / КОПИРОВАНИЕ A / ChangeLog A / ЭВОЛЮЦИЯ A / УСТАНОВИТЬ A / MacOSX
Есть ли быстрый способ получить список измененных файлов в каждом коммите в git?
git log
не поддерживается просто-v
переключение, как многие ожидают / хотят? </Ответы:
Для полных путей измененных файлов:
Для полного пути и статуса измененных файлов:
Для сокращенных путей и diffstat измененных файлов:
Там намного больше вариантов, посмотрите документы .
источник
git log --numstat
. Смотритеgit help log
больше вариантов.git log --name-only --oneline
тоже довольно элегантно - одна цветная строка для коммита и один файл на строку. stackoverflow.com/a/14227496/1995714git log --name-status --find-renames
его для отображения переименованных файлов вместо добавления + удаления.--stat
сокращает длинные пути; Ширина настраивается, но обернутые гистограммы труднее читать. Другие форматы, как--numstat
всегда, печатают полные пути.--numstat
находится в строке 946 этой страницы руководства по состоянию на git 2.22.00. Это намного больше вариантов, чем нужно большинству людей.ПРИМЕЧАНИЕ: не рекомендуется использовать вместо
git whatchanged
git log
Вы можете использовать команду,
git whatchanged --stat
чтобы получить список файлов, которые менялись в каждом коммите (вместе с сообщением о коммите).Ссылки
источник
git show
это также отличная команда.Это вроде как
svn diff
, но вы можете передать его руководству по коммиту и посмотреть этот diff.источник
Если вы хотите получить имена файлов только без остальной части сообщения фиксации, вы можете использовать:
Затем его можно расширить, чтобы использовать различные параметры, содержащие имя файла:
При использовании этого метода следует обратить внимание на то, что в выводе есть несколько пустых строк, которые необходимо игнорировать. Использование этого может быть полезно, если вы хотите увидеть файлы, которые были изменены в локальной ветке, но еще не переданы в удаленную ветку, и нет гарантии, что последние из удаленной ветки уже были извлечены. Например, :
Показывает все файлы, которые были изменены в локальной ветви, но еще не объединены с главной веткой на удаленной.
источник
git log --stat --pretty="format:" $branchName
. Так напримерgit log --stat --pretty="format:" $(git rev-parse --abbrev-ref HEAD)
. Пока я в этом, вот точное заклинание, котороеgit log --name-only --pretty="format: " master..$(git rev-parse --abbrev-ref HEAD)
Я использую это ежедневно, чтобы показать историю с файлами, которые изменились:
Для краткости добавьте псевдоним в ваш файл
.gitconfig
, выполнив:источник
Я использую это:
который выводит список только файлов и их состояние (добавлено, изменено, удалено):
источник
git diff --stat HEAD^!
показывает измененные файлы и количество добавленных / удаленных строк для последнего коммита (HEAD
).Мне кажется, что нет единой команды для получения краткого вывода, состоящего только из имен файлов и количества добавленных и удаленных строк для нескольких коммитов одновременно, поэтому я создал для этого свой собственный скрипт bash:
Называться например.
./changed_files 99
чтобы получить изменения в сжатой форме отHEAD
доHEAD~99
. Может быть, например, по трубопроводу. кless
.источник
git diff --stat HEAD..master
можете показать разницу между HEAD и master, или этого не было, когда вы опубликовали свой ответ еще в 2012 году?HEAD
иmaster
. Это две разные вещи.Я считаю, что следующее - это идеальное отображение списка файлов, измененных за коммит, в кратком формате:
источник
Сводка ответов с примером вывода
Это использует локальный репозиторий с пятью простыми коммитами.
Кредиты @ CB-Bailey @ Питер-Сувара @Gaurav @ Омер-Даган @xsor @Hazok @nrz @ptc
источник
Еще одна полезная команда - это
git diff-tree <hash>
где хеш может быть также диапазоном хеша (обозначается через<old>..<new>
нотацию). Пример вывода:Поля:
режим источника, режим Dest, исходный хеш, Dest хэш, статус, имя файла
Ожидаемые статусы: D (удалено), A (добавлено), M (изменено) и т. Д. См. Man-страницу для полного описания.
источник
Я обычно использую их, чтобы получить журналы:
источник