Git checkout – zurück zu HEAD wechseln

Lesezeit: 4 Minuten

Benutzer-Avatar
asdfgh

Ich habe mein Projekt gemacht, als ich irgendwann entdeckte, dass eine Sache nicht mehr funktionierte. Ich musste den Status meines Codes nachschlagen, wenn er richtig funktionierte, also habe ich mich entschieden, git checkout zu verwenden (weil ich etwas auschecken wollte). Und das habe ich getan

git checkout SHA

Ein paar Mal, während ich zu einem Punkt zurückkehre, von dem aus ich nicht zu HEAD gehen kann, lautet die Ausgabe wie folgt:

git checkout SHA-HEAD

error: Your local changes to the following files would be overwritten by checkout:
    [list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting

Ich bin mir ziemlich sicher, dass ich nichts geändert habe. Der Befehl

git checkout master

gibt die gleiche Ausgabe.

Gibt es einen Weg zurück zu HEAD?

Was ist der sichere Weg, Verlaufs-Commits zu “überspringen”?

  • Wenn Sie diese Änderungen nicht beibehalten möchten git clean -f reinigt alle nicht nachverfolgten Dateien. Dann Kasse zum Meister

    – gmuraleekrishna

    7. Februar 2017 um 5:26 Uhr

  • Das error: ... Nachricht bedeutet, dass Sie – oder etwas, das Sie getan haben, vielleicht indirekt – tat die Dateien ändern. Sie können Git anweisen, diese Änderungen zu verwerfen oder zu überschreiben oder zu verwenden git status und/oder git diff um zu sehen, was sich genau geändert hat. Es könnte so einfach sein wie eine Art Zeilenende-Änderung oder ein Befehl, der im Hintergrund läuft und in eine Datei schreibt. (Nebenbei: “Gehe zurück zu HEAD” macht in Git keinen Sinn, da du es bist stets Auf den Kopf: HEAD bedeutet wörtlich “aktueller Commit”. Du kannst Rückgeld HEAD, danach bist du immer noch auf HEAD, nur einem anderen HEAD. Das ist … schwer zu formulieren. 🙂 )

    – Torek

    7. Februar 2017 um 7:15 Uhr


  • Git ist vollgepackt mit Mechanismen, also hier sind zwei: git reset --hard HEAD bedeutet “den Index und den Arbeitsbaum zurücksetzen, damit sie mit HEAD übereinstimmen”, dh Änderungen verwerfen. Oder: git checkout -f master bedeutet “Kopf ändern zu sein masterauch wenn das bedeutet, Arbeit wegzuwerfen: -f bedeutet “Kraft”.

    – Torek

    7. Februar 2017 um 7:18 Uhr

Benutzer-Avatar
Sajib Khan

Du kannst stash (Speichern Sie die Änderungen an einem temporären Ort) und dann zurück zu master Filialleiter.

$ git add .
$ git stash
$ git checkout master

Beachten Sie, dass einige Sites den Namen des Standardzweigs von „master“ in „main“ geändert haben, sodass Sie ihn möglicherweise verwenden müssen git checkout main stattdessen.


Überspringen von Commits hin und her:

  • Gehen Sie zu einem bestimmten commit-sha.

      $ git checkout <commit-sha>
    
  • Wenn Sie hier nicht festgeschriebene Änderungen haben, können Sie in einen neuen Zweig auschecken | Hinzufügen | Bestätigen | Schieben Sie den aktuellen Zweig zur Fernbedienung.

      # checkout a new branch, add, commit, push
      $ git checkout -b <branch-name>
      $ git add .
      $ git commit -m 'Commit message'
      $ git push origin HEAD          # push the current branch to remote 
    
      $ git checkout master           # back to master branch now
    
  • Wenn Sie Änderungen in dem spezifischen Commit haben und die Änderungen nicht behalten möchten, können Sie dies tun stash oder reset dann zur Kasse gehen master (oder jede andere Filiale).

      # stash
      $ git add -A
      $ git stash
      $ git checkout master
    
      # reset
      $ git reset --hard HEAD
      $ git checkout master
    
  • Wenn Sie nach dem Auschecken eines bestimmten Commit keine nicht festgeschriebenen Änderungen haben, kehren Sie einfach zu zurück master oder other Zweig.

      $ git status          # see the changes
      $ git checkout master
    
      # or, shortcut
      $ git checkout -      # back to the previous state
    

  • Das löste mein Problem – teilweise. Trotzdem muss ich wissen, wie man ohne Konsequenzen über Commits hin und her springt.

    – asdfgh

    7. Februar 2017 um 5:38 Uhr

  • @rbraun, ich habe meine Antwort bearbeitet, die zeigt, wie Sie über Commits hin und her springen können.

    – Sajib Khan

    7. Februar 2017 um 5:54 Uhr


  • Wütend. Ich habe mich gefragt, warum ich die Änderungen sehen kann, die ich in einem Zweig im Master vorgenommen habe. Es lag daran, dass ich es nicht habe add, commitund push die Verzweigung zu origin. Deine Lösung hat funktioniert.

    – Howard Lee

    9. September 2019 um 17:37 Uhr

  • Eine Zeitersparnis, warum Git sich nicht selbst als menschenähnlichere Dinge erstellt, ich sehe, es gibt Tonnen von Fragen dazu, und es ist nur eine Versionskontrollsoftware=.=!

    – ChuckZHB

    6. April 2020 um 9:05 Uhr

  • mit Git 2.17.1, git checkout master => “error: pathpec ‘master’ stimmt mit keiner Datei(en) überein, die git bekannt sind” aber git checkout - ist gut.

    – Kebs

    28. März um 14:08 Uhr

Kurze Antwort

git reset --hard
git checkout HEAD

Dadurch werden alle (unerwünschten) Änderungen entfernt und Sie gelangen zurück zu dem Zweig HEAD, von dem Sie gekommen sind.

1317510cookie-checkGit checkout – zurück zu HEAD wechseln

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

Privacy policy