Layer 8Ehrlicher Tech-Support
SoftwareSchweregrad: AnfängerfehlerYour local changes would be overwritten

git: local changes would be overwritten by merge

git stoppt mit 'Your local changes would be overwritten by merge/checkout'? So rettest du deine Änderungen per commit oder stash, statt sie zu verlieren.

Aufwand:
ca. 10 Min.

Das Symptom

Du willst den Branch wechseln oder schnell git pull machen – und git bremst: error: Your local changes to the following files would be overwritten by merge (oder by checkout), gefolgt von „Please commit your changes or stash them before you switch branches“. Der Wechsel findet nicht statt.

Die „Layer 8“-Wahrheit

Das sieht aus wie eine Blockade, ist aber ein Rettungsanker. git hat gemerkt, dass du an genau den Dateien gearbeitet hast, die der Pull oder Branchwechsel gleich überschreiben würde – und weigert sich, deine ungespeicherte Arbeit kommentarlos zu vernichten. Es zwingt dich zu einer bewussten Entscheidung, statt sie dir abzunehmen. Der Panikreflex, mit Gewalt (checkout --force, reset --hard) drüberzufahren, ist genau der, der die Arbeit tatsächlich kostet. Der ruhige Weg hat nur zwei Varianten: Ist der Stand fertig, committe ihn; ist er es nicht, leg ihn per stash kurz beiseite. In beiden Fällen bleibt nichts auf der Strecke.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Ansehen, was überhaupt geändert ist

    Zuerst verschaffst du dir Überblick, welche Dateien betroffen sind und was sich geändert hat. Erst dann entscheidest du: behalten oder verwerfen.

    git status
    git diff
    
  2. 2.

    Fertige Änderungen committen

    Sind die Änderungen sinnvoll und abgeschlossen, hältst du sie fest. Danach läuft der Wechsel oder Pull ohne Konflikt durch:

    git add .
    git commit -m "Beschreibung der Änderung"
    
  3. 3.

    Unfertige Änderungen zwischenlagern

    Willst du sie behalten, aber noch nicht committen, legst du sie beiseite, führst die Aktion aus und holst sie danach zurück:

    git stash
    git pull
    git stash pop
    
  4. 4.

    Änderungen bewusst verwerfen

    Nur wenn die lokalen Änderungen wirklich überflüssig sind, gezielt zurücksetzen. Das ist unwiderruflich – also erst nach dem Blick in git diff:

    git restore <datei>
    
  5. 5.

    Konflikte nach stash pop auflösen

    Kollidieren die zurückgeholten Änderungen mit dem neuen Stand, markiert git die Stellen in den Dateien. Diese von Hand bereinigen, dann normal weiterarbeiten – dein Zwischenstand ist nicht verloren.

Häufige Fragen (FAQ)

?Warum blockiert git den Wechsel oder Pull?

Du hast lokale, noch nicht committete Änderungen an Dateien, die der Wechsel (checkout) oder das Zusammenführen (merge/pull) ebenfalls verändern würde. git weigert sich, deine Arbeit einfach zu überschreiben, und fordert dich auf, sie vorher zu sichern – entweder per commit oder stash.

?Was ist der Unterschied zwischen commit und stash?

commit hält deine Änderungen dauerhaft in der History fest – richtig, wenn sie fertig genug sind. stash legt sie vorübergehend beiseite und macht das Arbeitsverzeichnis sauber, sodass du pullen oder den Branch wechseln kannst; danach holst du sie mit stash pop zurück. Zum Wegwerfen ist keiner von beiden gedacht.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

SWAnfängerfehlerfatal: refusing to merge unrelated histories

Git: refusing to merge unrelated histories

git pull scheitert mit 'refusing to merge unrelated histories'? So führst du zwei getrennt entstandene Repos kontrolliert zusammen.

SWLästigdetached HEAD

Git: detached HEAD state

Git meldet „detached HEAD“? Du stehst nicht auf einem Branch, sondern direkt auf einem Commit — Änderungen hier gehen ohne Gegenmaßnahme leicht verloren.

SWLästiggpg failed to sign the data

Git-Commit scheitert an der GPG-Signatur

git commit bricht mit „gpg failed to sign the data“ ab? Meist fehlt der passende Schlüssel, oder GPG kann im Terminal nicht nach der Passphrase fragen.

SWLästigCONFLICT

Git: Merge-Konflikt (CONFLICT)

Git meldet einen Konflikt beim Zusammenführen? Beide Seiten haben dieselbe Stelle geändert. Git kann nicht raten, welche gilt — das entscheidest du.

SWLästigNot possible to fast-forward, aborting.

git pull: Not possible to fast-forward, aborting

git pull bricht ab, sobald eigener und entfernter Zweig auseinandergelaufen sind. Laut Git 2.55 ist --ff-only die Voreinstellung, nicht der Merge.

SWAnfängerfehlerfatal: not a git repository

git: fatal: not a git repository

git meldet 'fatal: not a git repository (or any of the parent directories)'? Du bist im falschen Ordner oder .git fehlt. So kommst du zurück ins Repo.