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.


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

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ć.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.