Kann ich alle lokalen Zweige außer dem aktuellen Zweig löschen?
Möchte ich löschen, alle Branchen, gelistet in der Ausgabe von
$ git branch
aber halten-current-Zweig, in einem Schritt. Ist das möglich? Wenn ja, wie?
Kommentar zu dem Problem
mögliche Duplikate von Löschen Sie alle lokalen git-Zweige
möglich, Duplikat der so entfernen Sie alle lokalen git-Zweige, aber halten Sie master mit einem Befehl Linie?
Möglich, Duplikat der Wie lösche ich alle git-Zweige, die zusammengefügt wurden?
InformationsquelleAutor der Frage sensorario | 2015-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf @pankijs Antwort, ich habe zwei git-Aliase:
Hinzugefügt werden, in
~/.gitconfig
Und, wie @torek hingewiesen:
Grundsätzlich nie die
-force
version, wenn man nicht 300% sicher, dass Sie nicht verlieren alles, was wichtig ist. Weil es verloren geht immer.InformationsquelleAutor der Antwort Vadorequest
löscht alle Zweige außer master, master ersetzen mit Zweig, die Sie behalten möchten (löschen master)
InformationsquelleAutor der Antwort pankijs
git branch -d
(oder-D
) können mehrere Zweig-Namen, aber es ist ein bisschen heikel, um automatisch liefern "alle lokalen Zweige, ausgenommen die, die ich jetzt" ohne zu schreiben, zumindest ein wenig code.Den "besten" (formal korrekte) Methode ist die Verwendung
git for-each-ref
um den branch-Namen:aber dann ist es noch schwieriger, herauszufinden, in welcher Branche du bist auf (
git symbolic-ref HEAD
ist die "formal korrekte" Methode für diese, wenn Sie wollen, schreiben Sie ein schickes Skript).Bequemer, können Sie verwenden
git branch
, die druckt Ihren lokalen branch-Namen vorangestellt zwei Leerzeichen oder (für den aktuellen Zweig) durch ein Sternchen*
. So führen Sie dies durch etwas zu entfernen, die*
version, und Sie sind Links mit Leerzeichen-getrennte Zweig-Namen, die Sie dann passieren kann, umgit branch -d
:oder:
Beachten Sie, dass Kleinbuchstaben
-d
nicht löschen "nicht vollständig zusammengeführten Zweig" (siehe Dokumentation). Mit-D
löschen solcher Zweige, auch wenn dadurch verpflichtet zu werden, "verloren"; verwenden Sie diese mit großer Sorgfalt, als dies löscht den Zweig reflogs als gut, so dass die üblichen "recover from accidental deletion" - Kram funktioniert auch nicht.InformationsquelleAutor der Antwort torek
Entfernen Sie alle zusammengeführten Branchen(außer aktuelle
-v ‘*’
):auch ich habe so Befehl für repo-komplett Aufräumen:
entnommen hier.
InformationsquelleAutor der Antwort Stepan Suvorov
IMHO der sicherste Weg zu entfernen lokale Niederlassungen:
Auch, mehr info zu diesem Thema finden Sie Löschen Sie alle lokalen git-Zweige
InformationsquelleAutor der Antwort elbik