Wie komme ich zurück zum letzten Commit, nachdem ich einen vorherigen Commit ausgecheckt habe?

Lesezeit: 5 Minuten

Wie komme ich zuruck zum letzten Commit nachdem ich einen
Leo Alexejew

Manchmal schaue ich mir eine frühere Version des Codes an, um sie zu untersuchen oder zu testen. Ich habe Anweisungen gesehen, was zu tun ist, wenn ich frühere Commits ändern möchte – aber angenommen, ich nehme keine Änderungen vor. Nachdem ich z git checkout HEAD^wie komme ich zurück zur Astspitze?.. git log zeigt mir nicht mehr den SHA des letzten Commits an.

  • Hinsichtlich der git log Satz Ihrer Frage, können Sie immer ausführen git log --all (oder sinnvoller git log --oneline --graph --all).

    – Platzhalter

    17. März 2016 um 9:56 Uhr

  • Wenn Sie den Kommentar von @Wildcard erweitern, können Sie daraus einen wunderbaren Alias ​​erstellen git log Befehl: git adog

    – andschar

    15. September 2021 um 7:45 Uhr

Wie komme ich zuruck zum letzten Commit nachdem ich einen
Phil Müller

Wenn Sie wissen, dass der Commit, zu dem Sie zurückkehren möchten, der Kopf eines Zweigs ist oder getaggt ist, können Sie dies einfach tun

git checkout branchname

Sie können auch verwenden git reflog um zu sehen, auf welche anderen Commits Ihr HEAD (oder irgendein anderer Ref) in der Vergangenheit gezeigt hat.


Bearbeitet, um hinzuzufügen:

In neueren Versionen von Git, wenn Sie nur liefen git checkout oder etwas anderes, um Ihr zu bewegen HEAD einmal können Sie auch tun

git checkout -

zurück zu wechseln, wo es vor der letzten Kasse war. Dies wurde durch die Analogie zum Shell-Idiom motiviert cd - um zu dem Arbeitsverzeichnis zurückzukehren, in dem man sich zuvor befand.

  • Ich möchte erwähnen, dass das typische Beispiel “git checkout master” wäre. Eine der Schwierigkeiten, die ich beim Erlernen der Verwendung von Git hatte, bestand darin, nicht zu wissen, welche spezifischen Schlüsselwörter (z. B. “master”) ich tatsächlich durch Platzhalterwörter wie “branchname” ersetzen kann.

    – AbePralle

    2. Februar 2012 um 7:19 Uhr

  • master ist übrigens nicht wirklich irgendein Stichwort HEAD ist. Es ist nur der Standard-Zweigname in einem neuen Repository. Du kannst rennen git branch um eine Liste der Zweige in Ihrem Repository zu erhalten, und git tag -l für eine Liste von Tags. Ähnlich, origin ist der Standardname der Fernbedienung, von der ein Repository geklont wird, aber daran ist nichts Besonderes.

    – Phil Müller

    3. Februar 2012 um 21:54 Uhr

  • Wenn es nicht klar war, git reflog gibt Ihnen eine Liste von Hashes, an welcher Stelle Sie verwenden können git checkout [commit-hash].

    – jbnunn

    30. Januar 2014 um 23:42 Uhr

  • Ich habe eine Datei gelöscht und den Befehl ausprobiert, aber er setzt sie nicht vollständig zurück. Erstens ist es nicht rekursiv. Wenn ich das dann mit der Datei versuche, die ich gelöscht habe, sagt mir git danach, dass HEAD getrennt ist. Was ist zu tun?

    – Daniel S.

    13. Mai 2014 um 12:58 Uhr


  • @DanielS.: Die Frage und meine Antwort waren ungefähr begeht, während Sie über Dateien sprechen. Git behandelt sie etwas anders.

    – Phil Müller

    17. Mai 2014 um 17:33 Uhr

git Checkout-Master

Master ist der Tipp oder der letzte Commit. gitk zeigt Ihnen nur bis zu der Stelle an, an der Sie sich gerade im Baum befinden. Git-Relog zeigt alle Commits an, aber in diesem Fall wollen Sie nur den Tipp, also git checkout master.

  • Dies. Oder git checkout branchname

    – Alex von Jitbit

    17. Januar 2020 um 12:27 Uhr

1646357889 57 Wie komme ich zuruck zum letzten Commit nachdem ich einen
816-8055

Bin gerade auf diese Frage gestoßen und habe etwas hinzuzufügen

So gehen Sie zum letzten Commit:

git checkout $(git log --branches -1 --pretty=format:"%H")

Erläuterung:

git log --branches zeigt das Protokoll der Commits aus allen lokalen Branches
-1 Begrenzung auf einen Commit → aktuellster Commit
--pretty=format:"%H" Format, um nur den Commit-Hash anzuzeigen
git checkout $(...) Verwenden Sie die Ausgabe der Subshell als Argument für den Checkout

Notiz:

Dies führt jedoch zu einem abgetrennten Kopf (da wir direkt zum Commit auschecken). Dies kann vermieden werden, indem der Zweigname mit extrahiert wird sedweiter unten erklärt.


So gehen Sie zum Branch des letzten Commits:

git checkout $(git log --branches -1 --pretty=format:'%D' | sed 's/.*, //g')

Erläuterung:

git log --branches zeigt das Protokoll der Commits aus allen lokalen Branches
-1 Begrenzung auf einen Commit → aktuellster Commit
--pretty=format:"%D" Format, um nur Ref-Namen anzuzeigen
| sed 's/.*, //g' Ignorieren Sie alle bis auf die letzte von mehreren Refs
git checkout $(...)

Verwenden Sie die Ausgabe der Subshell als Argument für den Checkout

*) HEAD- und entfernte Zweige werden zuerst aufgelistet, lokale Zweige werden in alphabetisch absteigender Reihenfolge zuletzt aufgelistet, sodass der verbleibende Zweig der alphabetisch erste Zweigname ist

Notiz:


Dies wird immer nur den (alphabetisch) ersten Zweignamen verwenden, wenn es mehrere für diesen Commit gibt.

git log --branches -1 --pretty=format:'%D'

Wie auch immer, ich denke, die beste Lösung wäre, einfach die Ref-Namen für den neuesten Commit anzuzeigen, um zu wissen, wo man auschecken muss: git top Erstellen Sie zB den Alias

  • für diesen Befehl.

    Irgendwie habe ich den zweiten Befehl vermasselt … Behoben, er checkt Sie jetzt korrekt aus dem Zweig des letzten Commits aus.

    – 816-8055

  • 29. Januar 2019 um 14:53 Uhr alias git-head='git checkout $(git log --branches -1 --pretty=format:"%D" | sed "s/.*, //g")'

    Bash/zsh-Alias ​​für den Befehl, zum Kopf zurückzukehren

    – Hallo Engel

1646357890 605 Wie komme ich zuruck zum letzten Commit nachdem ich einen
4. Februar 2019 um 11:14 Uhr

Tanaszius gitk Schauen Sie sich die grafische GUI an …

1646357891 71 Wie komme ich zuruck zum letzten Commit nachdem ich einen
es zeigt alle Commits. Manchmal ist es einfacher, grafisch zu arbeiten … ^^

Hitzkopf1000

git checkout master
git checkout branchname

1646357891 107 Wie komme ich zuruck zum letzten Commit nachdem ich einen
Sie können dafür einen der folgenden Git-Befehle verwenden:

git reflog //find the hash of the commit that you want to checkout
git checkout <commit number>>

Atif Majeed
alle Branches anzeigen und committen

git log –branches –oneline
letzten Commit anzeigen

git log –branches -1 –oneline
Show vor dem letzten Commit

  • git log –branches -2 –oneline

    Wird der erste Befehl tatsächlich übergeben, welcher Code gerade bereitgestellt wird, oder verstehe ich das falsch?

    – Lazerbeak12345

929590cookie-checkWie komme ich zurück zum letzten Commit, nachdem ich einen vorherigen Commit ausgecheckt habe?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy