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.


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.


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


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


44

Aby zobaczyć ostatnie zatwierdzenie

git log -1

Aby zobaczyć ostatnie 2 zatwierdzenie

git log -2

itp....


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 <Kylo@darkside.empire.gov>
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       

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,


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.


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 .


11
$ git diff - tylko nazwa HEAD ^ .. HEAD

lub

$ git log - HEAD ^-only-name HEAD

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.


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


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.


Dzięki, to dobra uwaga, ale pierwotne pytanie było znacznie prostsze i już wiele razy udzielono na nie odpowiedzi.
— Dan Rosenstark
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.