Git Branches Lokal und Remote Löschen

Git-Branches fungieren als unabhängige Umgebungen für die Entwicklung. Sie ermöglichen es, neue Features, Bugfixes oder Experimente durchzuführen, ohne den Hauptzweig zu beeinträchtigen. Jeder Branch besitzt eine eigene Commit-Historie, wodurch Änderungen sicher getestet werden können, bevor sie zusammengeführt werden. Mit zunehmendem Projektumfang können jedoch ungenutzte oder bereits gemergte Branches das Repository unübersichtlich machen und die Zusammenarbeit erschweren. Das regelmäßige Entfernen veralteter Branches – sei es nach einem Merge, abgeschlossenen Aufgaben oder gescheiterten Tests – sorgt für ein sauberes, fokussiertes und leichter zu verwaltendes Repository. In diesem Leitfaden wird erklärt, wie Git-Branches funktionieren und wie man sie sowohl lokal als auch remote löscht.

Kurzfassung

Wenn du Git bereits kennst und nur die wichtigsten Befehle zum Löschen benötigst, nutze folgende Kommandos:

# Lokalen Branch löschen (sicher, löscht keine ungemergten Änderungen)
$ git branch -d <branch_name>

# Lokalen Branch erzwingen (auch ungemergte Änderungen werden gelöscht)
$ git branch -D <branch_name>

# Remote-Branch löschen
$ git push origin --delete <branch_name>

Im Folgenden findest du detaillierte Erklärungen und Beispiele zu jedem Befehl.

Einen Git Branch Lokal Löschen

Nachdem ein Feature-Branch in den Hauptzweig integriert wurde, kannst du ihn bedenkenlos lokal entfernen. Git stellt dabei Schutzmechanismen bereit, um versehentliches Löschen zu vermeiden.

Befehls-Erklärung (Lokal)

Der Befehl git branch wird mit den Flags -d oder -D genutzt. Kleinbuchstabe -d löscht nur gemergte Branches, während -D das Löschen auch ohne Merge erzwingt.

Befehls-Syntax (Lokal)

So löschst du einen Branch lokal:

git branch -d <branch_name>
git branch -D <branch_name>

  • git branch: Verwaltung von Branches
  • -d: Löscht nur, wenn bereits gemergt
  • -D: Erzwingt das Löschen, auch wenn nicht gemergt
  • <branch_name>: Name des Branches

Übersicht der Flags (Lokal)

Zusätzliche Optionen zur Verwaltung von Branches:

Flag Beschreibung
-d, –delete Löscht nur, wenn gemergt
-D Erzwingt das Löschen, auch wenn nicht gemergt
-v, –verbose Zeigt den letzten Commit jedes Branches
-a, –all Listet lokale und Remote-Branches auf
–merged Listet Branches, die bereits gemergt wurden
–no-merged Listet Branches, die noch nicht gemergt wurden

Beispiel (Lokal)

Ein typischer Ablauf zum Löschen lokaler Branches:

Alle lokalen Branches anzeigen:

$ git branch
  development
  feature-login
  hotfix-header
* main

Bereits gemergte Branches prüfen:

$ git branch --merged
  development
  feature-login
* main

Gemergten Branch löschen:

$ git branch -d feature-login
Deleted branch feature-login (was 8cd77fa).

Versuch, einen nicht gemergten Branch zu löschen:

$ git branch -d hotfix-header
error: the branch 'hotfix-header' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D hotfix-header'

Erzwungenes Löschen eines ungemergten Branches:

$ git branch -D hotfix-header
Deleted branch hotfix-header (was a0716a9).

Verbleibende Branches erneut prüfen:

$ git branch
  development
* main

Das Löschen eines Branches entfernt nur die Referenz. Wurde er nicht gemergt, können seine Commits unzugänglich werden und später von Git’s Garbage Collector entfernt werden.

Einen Git Branch Remote Löschen

Nachdem ein Branch lokal entfernt wurde, kann er auch auf dem Remote-Repository gelöscht werden. Das sorgt für Konsistenz zwischen allen Projektmitgliedern und verhindert unnötige Unordnung.

Befehls-Übersicht (Remote)

Zum Entfernen eines Remote-Branches wird git push mit dem Flag --delete genutzt. Im Gegensatz zum lokalen Löschen prüft Git hier nicht, ob ein Branch gemergt ist.

Befehls-Syntax (Remote)

Moderne Syntax:

git push <remote> --delete <branch_name>

  • git push: Aktualisiert das Remote-Repository
  • <remote>: Meist „origin“
  • –delete: Entfernt den angegebenen Branch
  • <branch_name>: Name des zu löschenden Branches

Alternative ältere Syntax:

git push <remote> :<branch_name>

Der Doppelpunkt vor dem Branch-Namen weist Git an, diesen vom Remote-Repository zu entfernen.

Übersicht der Befehls-Flags (Remote)

Beim Löschen von Branches in einem Remote-Repository bietet Git zwei Möglichkeiten: den modernen --delete-Parameter sowie die ältere Doppelpunkt-Syntax. Während beim Remote-Löschen keine Sicherheitsprüfungen für ungemergte Branches erfolgen, erzielen beide Varianten dasselbe Ergebnis. Hier eine Übersicht hilfreicher Flags:

Flag Beschreibung
–delete, -d Entfernt den angegebenen Branch aus dem Remote-Repository
–force, -f Erzwingt den Push, auch wenn kein Fast-Forward vorliegt (für Delete nicht erforderlich)
–dry-run, -n Simuliert den Befehl, ohne Änderungen vorzunehmen
–verbose, -v Zeigt detaillierte Ausgaben während des Vorgangs

Befehls-Demonstration (Remote)

Ein Beispielablauf zum Löschen eines Remote-Branches und zum Aufräumen der lokalen Referenzen:

Alle Remote-Branches auflisten:

$ git branch -r
origin/HEAD -> origin/main
origin/development
origin/feature-login
origin/hotfix-header
origin/main

Den Branch feature-login aus dem Remote-Repository entfernen:

$ git push origin --delete feature-login
To https://github.com/<username>/<repository>.git
 - [deleted]         feature-login

Gelöschte Referenzen aus dem lokalen Klon entfernen:

$ git fetch --prune
From https://github.com/<username>/<repository>.git
 - [deleted]         (none)     -> origin/feature-login

Die Option --prune entfernt Remote-Referenzen, die auf dem Server nicht mehr existieren.

Zur Bestätigung erneut die Remote-Branches prüfen:

$ git branch -r
origin/HEAD -> origin/main
origin/development
origin/hotfix-header
origin/main

Die lokale Kopie des entfernten Remote-Branches löschen:

$ git branch -d feature-login

Andere Entwickler mit lokalen Klonen müssen ebenfalls das Prune-Kommando ausführen, um ihre Referenzen zu aktualisieren:

Hinweis: Um einen Remote-Branch zu löschen, benötigst du die entsprechenden Berechtigungen. Bei Fehlermeldungen solltest du deine Zugriffsrechte prüfen oder den Repository-Administrator kontaktieren.

Fazit

Nun weißt du, wie man Git-Branches sowohl lokal als auch remote entfernt. Egal ob du gemergte Feature-Branches bereinigst oder alte Branches entfernst – mit Befehlen wie git branch -d, git branch -D und git push origin --delete hältst du dein Repository sauber und effizient. Außerdem hast du gelernt, wann ein Branch-Löschen sinnvoll ist und wie sich typische Fehler – etwa das versehentliche Erzwingen bei ungemergten Änderungen – vermeiden lassen. Für weitere Details und erweiterte Konfigurationsoptionen empfiehlt sich die offizielle Git-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: