git -> показати список файлів, змінених за останні коміти у певному каталозі


Відповіді:


164

Це більше схоже на команду 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... Детальніше про формат діапазону читайте тут: kernel.org/pub/software/scm/git/docs/…
htanata

37

Щоб показати всі файли, змінені за останні 10 комітів, без будь-якої інформації про коміти, виконайте:

git diff --name-only HEAD~10..HEAD yourdir

3
Ідеальне рішення для повторного відкриття файлів у вашому редакторі.
cdosborn

1
Це рішення містить лише шляхи до файлів, без коментарів, що дуже вдячне за прийняту відповідь. Якщо все, що вам потрібно - це список файлів, які змінилися у зазначених комітах, і це рішення робить саме це .
Великий Річ

6

Спробуйте зробити

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.