421 Stimmen

git: Zweig wechseln und alle Änderungen ignorieren, ohne zu committen

Ich habe an einem Git-Zweig gearbeitet und war bereit, meine Änderungen zu übertragen, also habe ich einen Commit mit einer sinnvollen Commit-Nachricht gemacht. Dann habe ich geistesabwesend kleinere Änderungen am Code vorgenommen, die es nicht wert sind, beibehalten zu werden. Jetzt möchte ich den Zweig wechseln, aber Git lässt mich im Stich,

Fehler: Sie haben lokale Änderungen an "X"; Sie können nicht zwischen den Zweigen wechseln.

Kann ich Zweige ändern, ohne sie zu bestätigen? Wenn ja, wie kann ich das einrichten? Wenn nicht, wie komme ich aus diesem Problem heraus? Ich möchte die kleineren Änderungen ohne Commit ignorieren und nur die Zweige ändern.

5voto

Jorge Avila Punkte 139

Beim Wechsel zu einem neuen Zweig gehen Änderungen verloren:

git checkout -b YOUR_NEW_BRANCH_NAME --force

Wechsel zu einem bestehenden Zweig, bei dem Änderungen verloren gehen:

git checkout YOUR_BRANCH --force

3voto

Vinit Solanki Punkte 1683

Wenn Sie die Änderungen beibehalten und den Zweig mit einem einzeiligen Befehl ändern möchten

git stash && git checkout <branch_name> && git stash pop

3voto

Sławomir Lenart Punkte 6134

Für Ihre geistige Gelassenheit (um viel leichter auf Änderungen zugreifen zu können, die Sie bei einem Zweigwechsel unbearbeitet gelassen haben)

Vor dem Wechsel:

git checkout <next_branch>

verwenden.

git stash save "brief description of changes"

anstelle der Standardeinstellung:

git stash    
// or
git stash save

Dies zahlt sich aus, wenn Ihr git stash list ist eine längere Liste und muss zu einer früheren Idee zurückkehren, die irgendwo dort begonnen wurde.

2voto

Tom Hale Punkte 32065

Nicht übertragene Änderungen in einen neuen Zweig verschieben

Ich habe eine .gitconfig Alias für diese:

[alias]
spcosp = !"git stash push && git checkout \"$@\" && git stash pop --index #"

Zum Wechseln zu new-branch-name verwenden:

git spcosp new-branch-name

Und alle nicht bestätigten Datei- und Indexänderungen werden beibehalten.

2voto

Um zu einem anderen Zweig zu wechseln, ohne die Änderungen zu übertragen, wenn git stash nicht funktioniert. Sie können den folgenden Befehl verwenden:

git checkout -f branch-name

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X