Löschen eines lokalen Zweigs mit Git

134

Ich habe gegoogelt und es gibt mehrere sehr lange Themen zu diesem Thema, von denen keine zu helfen scheint. Ich glaube, ich mache etwas falsch. Ich habe eine Filiale namens Test_Branch. Wenn ich versuche, es mit der empfohlenen Methode zu löschen, wird folgende Fehlermeldung angezeigt:

Zweig 'Test_Branch' kann nicht gelöscht werden, der unter '[Verzeichnisverzeichnis]' ausgecheckt ist.

Abgesehen davon bekomme ich keine weiteren Informationen. Ich kann den Remote-Zweig einfach wegblasen, aber der lokale Zweig wird nicht verschwinden.

Bob Wakefield
quelle
Übrigens bin ich völlig neu bei Git. Ich habe es erst in den letzten Tagen benutzt. Ich habe mehrere Online-Kurse besucht und ein paar Bücher gelesen, und die Antworten scheinen auch nicht da zu sein.
Bob Wakefield
Wenn Sie ausführen git branch, was sagt es aus?
Coredump
19
Im Bild passiert Folgendes
coredump
Git Branch gibt mir * Test_Branch Master
Bob Wakefield
Der Stern sagt Ihnen, in welchem ​​Zweig Sie sich gerade befinden. Dies bestätigt, was die Antworten sagen
Coredump

Antworten:

244

Wechseln Sie zu einem anderen Zweig und löschen Sie ihn Test_Branchwie folgt:

$ git checkout master
$ git branch -d Test_Branch

Wenn der obige Befehl einen Fehler anzeigt - The branch 'Test_Branch' is not fully merged. If you are sure you want to delete itund Sie ihn dennoch löschen möchten, können Sie das Löschen erzwingen, indem Sie -Danstelle von-d :

$ git branch -D Test_Branch

Führen Sie Folgendes Test_Branchaus, um auch von der Fernbedienung zu löschen :

git push origin --delete Test_Branch
Arpit Aggarwal
quelle
34
Das Wechseln der Filialen hat mich dazu gebracht - ein guter Fang! Sie können den Zweig nicht löschen, wenn Sie darin aktiv sind. ;-)
SliverNinja - MSFT
2
Wenn Sie ein paar verschiedene Kassen ausprobieren und trotzdem die gleiche Meldung erhalten, sehen Sie sich die Ausgabe von git statusoder an git branch. Wenn Sie Test_branch neu gründen, wird dies durch einfaches Auschecken eines anderen Zweigs / Commits nicht behoben. Stattdessen git rebase --abortdann git checkout --detachund schließlichgit branch -D Test_branch
Droide
3
Ein weiterer Beweis dafür, dass Git für "Git ist schrecklich" steht. Je öfter ich es benutze, desto mehr dieser lächerlichen Reifen musst du durchspringen. Zumal Sie wahrscheinlich gleich wieder in den gleichen Zweig wechseln möchten.
user949300
Und was ist, wenn jemand dies zurückbekommt, wenn er versucht, die Filialen zu wechseln? error: you need to resolve your current index firstund sie wollen nur verlassen? EDIT - Lösung : git reset --; git checkout -D [branch_name]Puh ..
Paul
21

Sie haben Test_Branch wahrscheinlich ausgecheckt und können es möglicherweise nicht löschen, solange es sich um Ihren aktuellen Zweig handelt. Schauen Sie sich einen anderen Zweig an und versuchen Sie dann, Test_Branch zu löschen.

Randy Leberknight
quelle
14

Ich bin heute darauf gestoßen und der Wechsel zu einem anderen Zweig hat nicht geholfen. Es stellte sich heraus, dass meine Arbeitsbauminformationen irgendwie beschädigt waren und es einen Arbeitsbaum mit demselben Ordnerpfad wie mein Arbeitsverzeichnis gab, HEADder auf branch ( git worktree list) zeigte. Ich habe den .git/worktree/Ordner gelöscht, der darauf verwiesen hat, und habe git branch -dgearbeitet.

jinxcat2008
quelle
3

Wenn Sie mit git worktree mehrere Arbeitsbäume erstellt haben , müssen Sie diese ausführen, git prunebevor Sie den Zweig löschen können

dkniffin
quelle
3
git worktree prune
Genauer
Aber lesen Sie zuerst, was Git Prune macht - könnte zu Datenverlust führen
Sesquipedalias
1

Das hat bei mir funktioniert ...
Ich habe die Ordner dort im Ordner .git / worktrees entfernt und dann versucht, "git delete -D branch-name".

Vasu
quelle
1

In meinem Fall gab es unverbindliche Änderungen gegenüber dem vorherigen Zweig. Ich habe folgende Befehle verwendet und dann funktioniert gelöscht.

Git Checkout *

Git Checkout Master

Git-Zweig -D

Sankar Natarajan
quelle
0

Wie bereits erwähnt, können Sie den aktuellen Zweig, in dem Sie arbeiten, nicht löschen.

In meinem Fall habe ich "Test_Branch" in Visual Studio ausgewählt und versucht, "Test_Branch" aus Sourcetree (Git GUI) zu löschen. Und wurde unter Fehlermeldung.

Zweig 'Test_Branch' kann nicht gelöscht werden, der unter '[Verzeichnisverzeichnis]' ausgecheckt ist.

In Visual Studio zu einem anderen Zweig gewechselt und konnte "Test_Branch" aus Sourcetree löschen.

Ich hoffe, dies hilft jemandem, der Visual Studio & Sourcetree verwendet .

Praveen Mitta
quelle