git switch
Wechselt den Branch
Der Befehl 'git switch' bringt dich auf einen anderen Branch: HEAD folgt ihm und deine Arbeitsdateien passen sich diesem Branch an. Mit -c wird der Branch zuerst erstellt. Er kam mit Git 2.23, um den Branch-Wechsel von git checkout zu übernehmen, mit klareren Namen und sichereren Voreinstellungen — er verweigert den Wechsel, wenn dabei nicht committete Änderungen überschrieben würden.
Syntax
git switch [<options>] <branch>
git switch [<options>] (-c|-C) <new-branch> [<start-point>]
git switch [<options>] --detach [<start-point>]
git switch [<options>] --orphan <new-branch>Optionen
Die richtige Option wählen
switch oder checkout
Dieselben Branch-Aktionen, alt und neu
| Befehl | Entsprechung mit git checkout |
|---|---|
git switch main | git checkout main |
git switch -c feature/login | git checkout -b feature/login |
git switch --detach HEAD~1 | git checkout HEAD~1 |
git switch - | git checkout - |
Beispiele
Zu einem Branch wechseln
git switch mainZu main wechseln.
Erstellen und wechseln
git switch -c feature/loginfeature/login erstellen und dorthin wechseln.
Vorheriger Branch
git switch -Zurück zu dem Branch, auf dem du vorher warst.
Einem Remote-Branch folgen
git switch feature/loginExistiert nur origin/feature/login, wird ein lokaler Branch angelegt, der ihm folgt.
Workflow-Beispiele
git switch mainBei main anfangen
git pullDas neueste main holen
git switch -c feature/loginDeinen Branch erstellen
git stashDie Änderungen parken
git switch mainWechseln
git switch - && git stash popZurückkommen und die Änderungen wiederherstellen
Fehlerbehebung
error: Your local changes to the following files would be overwritten by checkout
Ursache: Eine nicht committete Änderung kollidiert mit dem anderen Branch
Committe oder stashe sie zuerst, oder verwirf sie mit --discard-changes
fatal: invalid reference: feature/x
Ursache: Der Branch existiert nicht
Erstelle ihn mit git switch -c, oder führe git fetch aus, falls er auf origin existiert
fatal: a branch is expected, got commit
Ursache: Du hast einen Commit angegeben, keinen Branch
Nutze git switch --detach <commit>
Tipps & Stolperfallen
Best Practices
- ✓Nutze git switch für Branches und git restore für Dateien statt git checkout.
- ✓Halte den Status sauber (Commit oder Stash), bevor du wechselst.
- ✓Pulle main, bevor du davon einen neuen Branch erstellst.
Häufige Fehler
- ✗Mit nicht committeten Änderungen wechseln und überrascht sein, dass sie mit auf den neuen Branch kommen.
- ✗git switch <commit> nutzen — Commits brauchen --detach.
- ✗-c vergessen und "invalid reference" für einen Branch bekommen, den es noch nicht gibt.
FAQ
Für Branches macht es dasselbe, aber mit klareren Optionen, und es kann nicht versehentlich Dateien verändern.
Git 2.23 oder neuer.
Sie kommen mit auf den neuen Branch, außer es gibt einen Konflikt — dann wird der Wechsel verweigert.