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

4
Идеальное решение для повторного открытия файлов в вашем редакторе.
cdosborn

2
В этом решении перечислены только пути к файлам, без комментариев, что очень ценится по сравнению с принятым ответом. Если все, что вам нужно, это список файлов, которые были изменены в указанных коммитах, и это решение делает именно это .
Big Rich

7

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

git log -p -10 yourdir/

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


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 $ - только имя

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.