Beheben des Fehlers "Cannot Delete Branch Checked Out"
Nachdem wir nun verstanden haben, warum wir einen ausgecheckten Branch nicht löschen können, lernen wir, wie man einen Branch richtig löscht, indem man zuerst zu einem anderen Branch wechselt.
Zu einem anderen Branch wechseln
Bevor wir den new-feature-Branch löschen können, müssen wir zu einem anderen Branch wechseln. Wechseln wir zurück zum master-Branch:
git checkout master
Sie sollten eine ähnliche Ausgabe sehen wie:
Switched to branch 'master'
Lassen Sie uns überprüfen, ob wir uns jetzt auf dem master-Branch befinden:
git branch
Die Ausgabe sollte Folgendes anzeigen:
bugfix-branch
feature-branch
* master
new-feature
Das Sternchen steht jetzt neben master, was anzeigt, dass dies unser aktueller Branch ist.
Den Branch sicher löschen
Da wir uns jetzt auf einem anderen Branch befinden, können wir den new-feature-Branch sicher löschen:
git branch -d new-feature
Wenn der Branch Änderungen enthielt, die nicht gemergt wurden, könnte Git die Löschung mit einer Meldung wie dieser verhindern:
error: The branch 'new-feature' is not fully merged.
If you are sure you want to delete it, run 'git branch -D new-feature'.
Dies ist eine weitere Sicherheitsfunktion von Git. Das Flag -d löscht nur Branches, die vollständig gemergt wurden, während -D die Löschung unabhängig vom Merge-Status erzwingt. Da wir Änderungen am new-feature-Branch vorgenommen haben, die noch nicht in master gemergt wurden, müssen wir das Flag -D verwenden:
git branch -D new-feature
Sie sollten eine Ausgabe sehen, die die Löschung bestätigt:
Deleted branch new-feature (was xxxxxxx).
Überprüfen der Branch-Löschung
Lassen Sie uns überprüfen, ob der Branch gelöscht wurde:
git branch
Die Ausgabe sollte jetzt Folgendes anzeigen:
bugfix-branch
feature-branch
* master
Der new-feature-Branch wird nicht mehr aufgelistet, was bestätigt, dass er erfolgreich gelöscht wurde.
Verstehen der Branch-Löschung
Wenn Sie einen Branch in Git löschen, löschen Sie nur den Zeiger auf eine Reihe von Commits. Die Commits selbst verbleiben im Git-Repository, bis die Garbage Collection ausgeführt wird. Das bedeutet:
- Wenn Sie versehentlich einen Branch löschen, können Sie ihn oft wiederherstellen
- Das Löschen eines Branchs löscht nicht die Arbeit, die auf diesem Branch geleistet wurde
- Die Branch-Löschung dient hauptsächlich der Ordnung und der Organisation Ihres Repositorys
Indem Sie lernen, wie man Branches richtig löscht, können Sie ein sauberes Git-Repository pflegen und den Fehler "Cannot delete branch checked out" vermeiden.