Git: Zobacz moje ostatnie zatwierdzenie

389

Chcę tylko zobaczyć pliki, które zostały zatwierdzone w ostatnim zatwierdzeniu dokładnie tak, jak widziałem listę, kiedy to zrobiłem git commit. Niestety szukam

git "last commit" log

w Google mnie nigdzie nie prowadzi. I

git diff HEAD^..HEAD

nie jest oczywiście tym, czego potrzebuję, ponieważ wyrzuca też wnętrzności zmiany.

Dan Rosenstark
źródło
35
Dzięki, właściwie właśnie potrzebowałem git diff HEAD^..HEAD!
Ameen

Odpowiedzi:

375

Jak ustalono w komentarzach, wydaje się, że OP szuka

$ git log --name-status HEAD^..HEAD

Jest to również bardzo bliskie wynikowi, który można uzyskać z svn statuslub svn log -vznanym wielu osobom przechodzącym od subversion do git.

--name-statusjest tutaj kluczem; jak zauważył innych ludzi w tej kwestii, można użyć git log -1, git showi git diffaby uzyskać ten sam rodzaj produkcji. Osobiście używam, git show <rev>gdy patrzę na poszczególne wersje.

Mike Seplowitz
źródło
Przyznaję, komentarze nie są dla mnie najlepszym sposobem na wyjaśnienie mojego pytania :) dzięki MikeSep
Dan Rosenstark
4
Myślę, że to daje ostatnie zatwierdzenie, nie? Tak więc, dla MEGO ostatniego uczyniłbymgit log --stat --author nroose -n 1
nie
1
I można je skracać i skracać za pomocą git show - name-status --oneline
jasonleonhard
To takie oczywiste! Powinienem był się domyślić, że jest to coś tak prostego, ponieważ takie pytanie pojawia się cały czas.
Scott Biggs,
1
W przypadku użycia wymuszonego wypychania to polecenie pokaże ci ostatnią łatkę zamiast najnowszego zatwierdzenia (czasowego) ... może być trudne w niektórych przypadkach użycia
Olix
207

Użyj git show :

git show --summary

Spowoduje to wyświetlenie nazw utworzonych lub usuniętych plików, ale nie nazw zmienionych plików. git showKomenda obsługuje szeroką gamę formatów wyjściowych, które pokazują różne rodzaje informacji dotyczących zatwierdzeń.

Greg Hewgill
źródło
1
@jamessan git show --statjest blisko, ale czy nie ma widoku, w którym obok pliku pojawia się słowo „zmodyfikowany” lub „dodany”?
Dan Rosenstark
3
Jeśli chcesz tylko nazwy plików (nawet mniej niż --stat), możesz także przyjrzeć się --name-statusi --name-onlyprzełączyć.
Mike Seplowitz,
1
@ MikeSep, właśnie tego potrzebowałem. Jeśli sprawisz, że będzie to odpowiedź, zaznaczę to jako najlepszą odpowiedź, ponieważ dla mnie tak było. Używamgit log --name-status HEAD^..HEAD
Dan Rosenstark
Jest to zdecydowanie najprostsze rozwiązanie z oferowanych.
Matthew
101
git log -1 --stat

powinno działać

knittl
źródło
44

Aby zobaczyć ostatnie zatwierdzenie

git log -1

Aby zobaczyć ostatnie 2 zatwierdzenie

git log -2

itp....

Ahmed Al Bermawy
źródło
1
Ale pytanie brzmiało: „... chcę zobaczyć pliki, które zostały zatwierdzone w ostatnim zatwierdzeniu” .
Peter Mortensen
42

Zdecydowanie najprostszym poleceniem jest:

git show --name-only

Ponieważ zawiera tylko pliki z ostatniego zatwierdzenia i nie daje ci wszystkich odwagi

Przykładem wyniku jest:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Kylo Ren <[email protected]>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millennium Falcon landing

 www/controllers/landing_ba_controller.js             
 www/controllers/landing_b_controller.js            
 www/controllers/landing_bp_controller.js          
 www/controllers/landing_h_controller.js          
 www/controllers/landing_w_controller.js  
 www/htdocs/robots.txt                        
 www/htdocs/templates/shields_FAQ.html       
nickhar
źródło
7
Zastanów się --name-statuszamiast --name-only.
Acumenus,
5
Tam jest problem ... imperium używa php do siatki obrony!
ptim
3
Najlepszy przykład, jaki widziałem na stosie! „To nie są zobowiązania, których szukasz.”
Scott Biggs,
22
git log -1 --name-status

Pracuje dla mnie.

Micrub
źródło
21

Aby zobaczyć zmiany ostatniego zatwierdzenia

git show HEAD

Lub aby zobaczyć zmiany ostatniego zatwierdzenia

git show HEAD~1

A dla dalszego po prostu zastąp „1” powyżej wymaganym numerem sekwencji zatwierdzania.

Shubham Mishra
źródło
15

Po wykonaniu kilku zatwierdzeń lub sklonowaniu / ściągnięciu repozytorium możesz chcieć zobaczyć, jakie zatwierdzenia zostały wykonane. Wystarczy sprawdzić te proste rozwiązania, aby zobaczyć historię zatwierdzeń (od ostatniego / ostatniego zatwierdzenia do pierwszego).

Do ostatniego zatwierdzenia, po prostu odpalić polecenie: git log -1. Więcej interesujących rzeczy znajdziesz poniżej -

  1. Aby zobaczyć identyfikator zatwierdzenia (suma kontrolna SHA-1), nazwisko autora <identyfikator poczty>, datę wraz z godziną i wiadomość zatwierdzenia -

    git log
    
  2. Aby zobaczyć więcej statystyk, takich jak nazwy wszystkich plików zmienionych podczas tego zatwierdzenia oraz liczba wstawień / usunięć. Jest to bardzo przydatne podczas przeglądania kodu -

    git log --stat
    
  3. Aby zobaczyć historie zatwierdzania w kilku ładnych formatach :) (Po tym następują opcje wstępnej wersji) -

    • Jeśli masz zbyt wiele zatwierdzeń do sprawdzenia, to polecenie wyświetli je w schludnym pojedynczym wierszu:

      git log --pretty=oneline
      
    • Aby zobaczyć krótkie, średnie, pełne lub nawet więcej szczegółów zatwierdzenia, użyj odpowiednio:

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. Możesz nawet użyć własnego formatu wyjściowego, korzystając z formatopcji -

    git log --pretty=format:"%an, %ae - %s"
    

    gdzie% an - nazwa autora,% ae - autor e-maila,% s - temat zatwierdzenia itp.

To może ci pomóc w twoich historiach zatwierdzania. Aby uzyskać więcej informacji, kliknij tutaj .

Mithilesh Tipkari
źródło
11
$ git diff - tylko nazwa HEAD ^ .. HEAD

lub

$ git log - HEAD ^-only-name HEAD
Greg Bacon
źródło
Tego właśnie potrzebuję. Co powiesz na to, czy zostało zmodyfikowane, dodane czy usunięte? Może z listem w stylu svn?
Dan Rosenstark
1
Mam to teraz. git log --name-status HEAD^..HEAD
Dan Rosenstark
2
Zamiast tego git log ... HEAD^..HEAD, czy nie jest prostszy w użyciu git log ... -1 HEAD, czy lepszy git show ... HEAD?
Jakub Narębski
Po przejrzeniu kilku postów Stackoverflow, potrzebuję odpowiedzi. Chciałem tylko plików i nic więcej. Brak podsumowania zatwierdzeń, tylko pliki z ostatniego zatwierdzenia. DZIĘKI!
luckytaxi
6

git diff --stat HEAD

To pokazuje ten sam diffstat, co twój ostatni zatwierdzenie.

andy magoon
źródło
4

Innym sposobem wyświetlania tylko plików jest użycie:
git diff-tree --no-commit-id --name-only -r HEAD^..HEAD
Lub możesz użyć dwóch dowolnych identyfikatorów zatwierdzenia

Ismail Cherri
źródło
zalety tego log?
Dan Rosenstark,
Jest to w zasadzie inny sposób wyświetlania plików. Zazwyczaj
łączę
0

Jeśli mówisz o znalezieniu najnowszego i największego zatwierdzenia po przeprowadzeniu wypłaty gotówki z wcześniejszego zatwierdzenia ( i zapomniałeś zapisać skrót HEAD przed wykonaniem wypłaty ), większość z powyższych nie spowoduje powrotu do miejsca, w którym ty zacząłeś. git log - [some #] pokazuje log tylko z AKTUALNEJ pozycji HEAD , co niekoniecznie jest ostatnim zatwierdzeniem (stan projektu). Kasa rozłączy HEAD i skieruje go na wszystko, co wymeldowałeś.

Możesz zobaczyć cały dziennik git , aż dotrzesz do wpisu odnoszącego się do oryginalnego klonu. Przy okazji, to też nie zadziała, jeśli pomiędzy zatwierdzeniem projektu a wykonaniem transakcji dokonano jakichkolwiek zatwierdzeń. W przeciwnym razie możesz mieć nadzieję, że wszystkie zatwierdzenia na komputerze lokalnym znajdują się na serwerze, a następnie ponownie sklonujesz cały projekt.

Mam nadzieję że to pomoże.

HadziJo
źródło
Dzięki, to dobra uwaga, ale pierwotne pytanie było znacznie prostsze i już wiele razy udzielono na nie odpowiedzi.
Dan Rosenstark