git -> показать список файлов, измененных в недавних коммитах, в определенном каталоге

95

В Subversion svn logесть команда для отображения сообщений журнала фиксации - подробности см. В интерактивном руководстве по адресу http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html

Как я могу сделать:

svn log -v -l 10 ./

в git?

Сумек
источник

Ответы:

170

Эта команда больше похожа на команду svn, поскольку показывает статус файла: добавлен (A), скопирован (C), удален (D), изменен (M), переименован (R) и другие.

git log --name-status -10 path/to/dir

Стоит посмотреть полную страницу документации для git log. Там вы узнаете, что -10относится к последним 10 коммитам, и -pпредоставите вам полный патч, а также множество других полезных вещей.

Хтаната
источник
12
Для полноты: обычно используется набор аналогичных опций -p(полный патч), --stat(количество измененных строк), --numstat(как, --statно машиночитаемый) --name-status, и --name-only(только имена файлов).
Cascabel
3
Для тех, кто приходит к этому вопросу, даже не зная, что -10 означает количество коммитов, которые вы хотите показать. Если вам нужен исчерпывающий список коммитов, попробуйте сделать число необычно большим, например -1000 или больше, если необходимо.
Джулиан Соро
Можно ли также просмотреть историю с момента определенного коммита или метки? Это сотни коммитов назад, так что пытаюсь посчитать ...
MrFox
2
@MrFox git log <from revision>.., например git log abc123... Подробнее о формате диапазона читайте
htanata
38

Чтобы показать все файлы, измененные за последние 10 коммитов, без какой-либо информации о коммитах, выполните:

git diff --name-only HEAD~10..HEAD yourdir
dbn
источник
4
Идеальное решение для повторного открытия файлов в вашем редакторе.
cdosborn
2
В этом решении перечислены только пути к файлам, без комментариев, что очень ценится по сравнению с принятым ответом. Если все, что вам нужно, это список файлов, которые были изменены в указанных коммитах, и это решение делает именно это .
Big Rich
7

Стараться сделать

git log -p -10 yourdir/

Он должен работать.

синий112
источник
1
OP запросил список измененных файлов, а не полный патч.
Cascabel
1
Если вы хотите, чтобы список файлов был изменен, вы можете использовать --stat вместо -p
blue112
1

Чтобы показать все commitваши ветки (недавние и старые), вам нужно подсчитать количество коммитов в ветке.

git rev-list --count branch_name

Как только вы получите все количество фиксаций, вы можете запустить

git log --name-status -countNumber /path
Саян Бисвас
источник
И можно упростить представление, добавив --pretty=onelineпараметр в git logкоманду выше. Добавление | sort | uniqкоманды поможет увидеть маркировку статуса A / C / D / M / R в соответствии с ответом
htanata
0

git show $ commitId $ - только имя

Это приведет к тому, что файлы будут изменены во время этой фиксации

Manvendra_0611
источник