622 Stimmen

Alle lokalen Git-Zweige löschen

Ich folge einem Entwicklungsprozess, bei dem ich für jede neue Funktion oder Storycard einen neuen lokalen Zweig erstelle. Wenn ich fertig bin, führe ich den Zweig mit Master zusammen und veröffentliche ihn dann.

Was im Laufe der Zeit durch eine Kombination aus Faulheit und Vergesslichkeit passiert, ist, dass ich am Ende eine große Liste lokaler Zweige habe, von denen einige (wie z.B. Spikes) vielleicht noch nicht zusammengeführt wurden.

Ich weiß, wie ich alle meine lokalen Zweige auflisten kann und ich weiß, wie ich einen einzelnen Zweig entfernen kann, aber ich habe mich gefragt, ob es einen Git-Befehl gibt, mit dem ich alle meine lokalen Zweige löschen kann?

Nachfolgend ist die Ausgabe des git branch --merged Befehl.

user@machine:~/projects/application[master]$ git branch --merged
  STORY-123-Short-Description
  STORY-456-Another-Description
  STORY-789-Blah-Blah
* master

Alle Versuche, Zweige zu löschen, die mit grep -v \* (gemäß den nachstehenden Antworten) führen zu Fehlern:

error: branch 'STORY-123-Short-Description' not found.
error: branch 'STORY-456-Another-Description' not found.
error: branch 'STORY-789-Blah-Blah' not found.

Ich benutze:

git 1.7.4.1  
ubuntu 10.04  
GNU bash, version 4.1.5(1)-release  
GNU grep 2.5.4

21voto

kiewic Punkte 15050

Löschen Sie in der Windows-Befehlszeile alle Dateien mit Ausnahme des aktuell ausgecheckten Zweigs:

for /f "tokens=*" %f in ('git branch ^| find /v "*"') do git branch -D %f

19voto

kgsnaidu Punkte 358

Wenn Sie alle Ihre lokalen Zweige löschen möchten, finden Sie hier einen einfachen Befehl:

git branch -D `git branch`

Hinweis: Dadurch werden alle Zweige mit Ausnahme des aktuell ausgecheckten Zweigs gelöscht.

16voto

Ali Hamad Punkte 499

Um alle lokalen Git-Zweige zu entfernen, aber den Hauptzweig zu behalten

git branch | grep -v "main" | xargs git branch -D

16voto

M.Qassem Punkte 101

Zuerst (wechseln Sie zu dem Zweig, den Sie beibehalten wollen > z.B.: master):

git checkout master

zweite (stellen Sie sicher, dass Sie auf dem Master sind)

git branch -D $(git branch)

Wenn Sie PowerShell verwenden, verwenden Sie

git branch -D $(git branch).Trim()

15voto

4u.Ans Punkte 1249

Ich hatte eine ähnliche Situation und fand kürzlich den folgenden Befehl nützlich.

git branch -D `git branch | awk '{ if ($0 !~ /<Branch_You_Want_to_Keep>/) printf "%s", $0 }'`

Wenn Sie mehrere Zweige behalten wollen, dann

git branch -D `git branch | awk '{ if ($0 !~ /<Branch_You_Want_to_Keep1>|<Branch_You_Want_to_Keep2>/) printf "%s", $0 }'`

Ich hoffe, das hilft jemandem.

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