git -> pokazuje listę plików zmienionych podczas ostatnich zatwierdzeń w określonym katalogu

Odpowiedzi:

170

To jest bardziej podobne do polecenia svn, ponieważ pokazuje stan pliku: Dodano (A), Skopiowano (C), Usunięto (D), Zmodyfikowano (M), Zmieniono nazwę (R) i inne.

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

Warto zajrzeć na stronę z pełną dokumentacją git log. Tam dowiesz się, że -10odnosi się to do ostatnich 10 zatwierdzeń, a także -pdostaniesz pełną łatkę, a także wiele innych gadżetów.

htanata
źródło
12
Dla kompletności: powszechnie używanym zestawem podobnych opcji jest -p(pełna łatka), --stat(liczba zmienionych linii), --numstat(jak --statale do odczytu maszynowego) --name-status, i --name-only(tylko nazwy plików).
Cascabel
3
Dla każdego, kto przychodzi do tego pytania, jeszcze o tym nie wiedząc, -10 oznacza liczbę zatwierdzeń, które chcesz pokazać. Jeśli potrzebujesz obszernej listy zatwierdzeń, spróbuj zwiększyć liczbę, np. -1000 lub więcej w razie potrzeby.
Julian Soro,
Czy można również przeglądać historię od czasu konkretnego zatwierdzenia lub etykiety? To było setki zatwierdzeń temu, więc próbuję to policzyć ...
MrFox,
2
@MrFox git log <from revision>.., np git log abc123... Więcej informacji na temat formatu zakresu można znaleźć tutaj: kernel.org/pub/software/scm/git/docs/…
htanata
38

Aby wyświetlić wszystkie pliki zmienione w ciągu ostatnich 10 zatwierdzeń, bez żadnych informacji o zatwierdzeniach, wykonaj:

git diff --name-only HEAD~10..HEAD yourdir
dbn
źródło
4
Idealne rozwiązanie do ponownego otwierania plików w edytorze.
cdosborn
2
To rozwiązanie zawiera tylko ścieżki plików, bez komentarzy, co jest bardzo cenione w stosunku do zaakceptowanej odpowiedzi. Jeśli chcesz, to lista plików, które zmieniły się w określonych zatwierdzeniach, a to rozwiązanie właśnie to robi .
Big Rich
7

Spróbuj zrobić

git log -p -10 yourdir/

Powinno działać.

niebieski112
źródło
1
OP poprosił o listę zmienionych plików, a nie o pełną poprawkę.
Cascabel
1
Jeśli chcesz zmienić listę plików, możesz zrobić --stat zamiast -p
blue112
1

Aby pokazać całą commitswoją gałąź (ostatnią i starą), musisz policzyć liczbę zatwierdzeń w gałęzi

git rev-list --count branch_name

Po uzyskaniu całej liczby zatwierdzeń możesz uruchomić

git log --name-status -countNumber /path
Sayan Biswas
źródło
I można uprościć widok dodając --pretty=onelineopcję do git logpowyższego polecenia. Dołączenie | sort | uniqpolecenia pomoże zobaczyć tagowanie statusu A / C / D / M / R zgodnie z odpowiedzią
htanata