git · Git
Die Meldung
error: Your local changes to the following files would be overwritten by checkout:
Was es bedeutet
Sie wollen auf einen anderen Branch wechseln, doch Dateien, die dort anders aussehen, tragen noch nicht committete Änderungen. Es erscheint bei switch oder checkout mit halb fertiger Arbeit. git stash push -u oder ein Wegwerf-Commit bringt Sie hinüber und später zurück. Das in Suchergebnissen häufige git checkout --force bzw. git switch --discard-changes wechselt zwar, löscht diese nicht committeten Änderungen aber endgültig — nichts hält sie fest, auch das Reflog nicht, es gibt keinen Rückweg.
Die Lösung
git stash push -u- Ausgegeben von
- git
- Git
- 29
Fast jeder git-Fehler ist eine Verweigerung im Sinne von „das aus diesem Zustand zu tun würde etwas verlieren“; fatal: heißt, git hat ohne jede Änderung abgebrochen, und die hint:-Zeilen unter der ersten enthalten meist die eigentliche Lösung.
Eine Fehlermeldung lesen
- Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
- Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
- Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
- Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
- Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.
Häufige Fragen
Q. Was bedeutet „error: Your local changes to the following files would be overwritten by checkout:“?
Sie wollen auf einen anderen Branch wechseln, doch Dateien, die dort anders aussehen, tragen noch nicht committete Änderungen. Es erscheint bei switch oder checkout mit halb fertiger Arbeit. git stash push -u oder ein Wegwerf-Commit bringt Sie hinüber und später zurück. Das in Suchergebnissen häufige git checkout --force bzw. git switch --discard-changes wechselt zwar, löscht diese nicht committeten Änderungen aber endgültig — nichts hält sie fest, auch das Reflog nicht, es gibt keinen Rückweg.
Q. Wie behebe ich das?
git stash push -u — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.
Q. Welches Werkzeug gibt das aus?
git. Es gehört zu Git, und die Meldung hat 13 Wörter.