Wie entferne ich einen Git-Zweig lokal und remote?

Ich möchte einen Zweig sowohl lokal als auch in meinem Remote-Projekt-Plug auf GitHub löschen.

Gelöschter Zweig konnte nicht gelöscht werden

 $ git branch -d remotes/origin/bugfix error: branch 'remotes/origin/bugfix' not found. $ git branch -d origin/bugfix error: branch 'origin/bugfix' not found. $ git branch -rd origin/bugfix Deleted remote branch origin/bugfix (was 2a14ef7). $ git push Everything up-to-date $ git pull From github.com:gituser/gitproject * [new branch] bugfix -> origin/bugfix Already up-to-date. 

Was muss ich anders machen, um remotes/origin/bugfix lokal und auf GitHub erfolgreich zu entfernen?

14380
05 янв. Matthew Rankin am 5. Januar eingestellt 2010-01-05 04:12 '10 am 4:12 2010-01-05 04:12
@ 40 Antworten
  • 1
  • 2

Zusammenfassung

 $ git push --delete <remote_name> <branch_name> $ git branch -d <branch_name> 

Beachten Sie, dass in den meisten Fällen der gelöschte Name origin .

Lokale Niederlassung löschen

Um einen lokalen Zweig zu löschen, verwenden Sie eine der folgenden Möglichkeiten:

 $ git branch -d branch_name $ git branch -D branch_name 

Hinweis Der Parameter -d ist ein Pseudonym für --delete , wodurch ein Zweig nur --delete , wenn er bereits vollständig mit dem übergeordneten Zweig zusammengeführt wurde. Sie können auch -d , einen Alias ​​für --delete --force , wodurch der Zweig "unabhängig von seinem kombinierten Status" --delete --force wird. [Quelle: man git-branch ]

Gelöschten Thread löschen [Aktualisiert 8. September 2017]

Ab Git v1.7.0 können Sie einen gelöschten Zweig mit löschen

 $ git push <remote_name> --delete <branch_name> 

was könnte leichter zu merken sein als

 $ git push <remote_name> :<branch_name> 

wurde in Git v1.5.0 hinzugefügt, "um einen gelöschten Zweig oder Tag zu entfernen".

Ab Git v2.8.0 können Sie auch git push mit -d als Alias ​​für --delete .

Die Version von Git, die Sie installiert haben, bestimmt also, ob Sie eine einfachere oder komplexere Syntax verwenden müssen.

Einen gelöschten Zweig löschen [Originalantwort vom 5. Januar 2010]

Aus Kapitel 3 von Pro Git von Scott Chacon:

Gelöschte Zweige löschen

Angenommen, Sie hatten einen Remote-Zweig - sagen wir, Sie und Ihre Mitarbeiter hatten eine Funktion und kombinierten diese mit Ihrem Haupt-Zweig der Remote-Station (oder einem anderen Zweig, der Ihre stabile Codezeile enthält). Sie können einen entfernten Zweig mit der ziemlich stumpfen Syntax von git push [remotename] :[branch] löschen. Wenn Sie den Server-Patch vom Server entfernen möchten, gehen Sie wie folgt vor:

 $ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix 

Boom Keine Verzweigungen mehr auf Ihrem Server. Möglicherweise möchten Sie diese Seite anzeigen, da Sie diesen Befehl benötigen und die Syntax höchstwahrscheinlich vergessen wird. Um diesen Befehl auswendig zu lernen, ist git push [remotename] [localbranch]:[remotebranch] Syntax git push [remotename] [localbranch]:[remotebranch] die wir etwas früher git push [remotename] [localbranch]:[remotebranch] haben. Wenn Sie [localbranch] Teil von [localbranch] , dann sagen Sie im Wesentlichen: "Nehmen Sie nichts von meiner Seite und machen Sie es [remotebranch] ".

Ich habe git push origin :bugfix und es hat gut funktioniert. Scott Chacon hatte recht - ich möchte diese Seite anhören (oder in der Tat das Ohr eines Hundes, das in Stack Overflow darauf reagiert).

Dann müssen Sie es auf anderen Maschinen tun.

 git fetch --all --prune 

Änderungen verbreiten.

17997
05 янв. Die Antwort wird von Matthew Rankin 05 Jan gegeben 2010-01-05 04:13 '10 am 4:13 2010-01-05 04:13

Matthews Antwort ist großartig, um gelöschte Verzweigungen zu löschen, und ich bin auch dankbar für die Erklärung, aber für den einfachen Unterschied zwischen den beiden Befehlen:

So entfernen Sie einen lokalen Zweig Von Ihrem Gerät:

git branch -d {the_local_branch} (Verwenden Sie -D anstatt einen Zweig zwangsweise zu entfernen, ohne nach dem zusammengeführten Zustand zu git branch -d {the_local_branch} )

border=0

So entfernen Sie einen Remote Branch- Server von einem Server:

git push origin --delete {the_remote_branch}

Link: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 Die Antwort gibt Eric Brotto am 12. Juni 12 um 17:51 Uhr 2012-06-12 17:51

Kurze Antworten

Wenn Sie ausführlichere Erklärungen zu den folgenden Befehlen benötigen, lesen Sie die >

Löschen eines entfernten Zweigs:

 git branch --delete <branch> git branch -d <branch> # Shorter version git branch -D <branch> # Force delete un-merged branches 

Einen lokalen Remote-Tracking-Zweig löschen:

1697
30 мая '14 в 21:32 2014-05-30 21:32 Die Antwort wird von user456814 30. Mai 14 um 21:32 2014-05-30 21:32 gegeben

Schritte zum Entfernen eines Zweigs:

einen entfernten Zweig löschen :

 git push origin --delete <your_branch> 

Um einen lokalen Zweig zu löschen , haben Sie drei Möglichkeiten :

 1: git branch -D <branch_name> 2: git branch --delete --force <branch_name> //same as -D 3: git branch --delete <branch_name> //error on unmerge 

Erklären Sie: Nun , erklären Sie einfach, was hier passiert.

git push origin --delete einfach git push origin --delete , um NUR den gelöschten Zweig zu löschen , und fügen Sie am Ende den Namen des Zweigs hinzu. Er löscht ihn und sendet ihn an den entfernten Zweig.

Auch git branch -D , die einfach NUR den lokalen Zweig löscht! ...

-D bedeutet --delete --force wodurch ein Zweig --delete --force , auch wenn er nicht zusammengeführt wird (erzwungenes Löschen). Sie können jedoch auch -D --delete bedeutet --delete der --delete Fehler --delete , der dem Zustand des Zusammenführens des Zweigs entspricht.

Ich erstelle unten ein Bild, um die Schritte anzuzeigen:

2019

27 июня '17 в 16:13 2017-06-27 16:13 Die Antwort wird von Alireza am 27. Juni 17 um 04:13 2017-05-06-27 16:13 gegeben

Sie können auch Folgendes verwenden, um einen gelöschten Zweig zu entfernen.

 git push --delete origin serverfix 

Was macht das Gleiche wie

 git push origin :serverfix 

Es kann jedoch einfacher sein, sich daran zu erinnern.

719
28 окт. Antwort gegeben pagetribe 28. Oktober. 2011-10-28 01:22 '11 at 1:22 2011-10-28 01:22

Wenn Sie einen Zweig löschen möchten, verlassen Sie zuerst einen Zweig, der nicht der Zweig ist, den Sie löschen möchten.

 git checkout other_than_branch_to_be_deleted 

Lokale Niederlassung löschen:

 git branch -D branch_to_be_deleted 

Löschen eines entfernten Zweigs:

 git push origin --delete branch_to_be_deleted 
350
07 окт. Die Antwort gibt Praveen Hiremath vom 7. Oktober 2014-10-07 16:52 '14 um 16:52 2014-10-07 16:52

Tipp: beim Löschen von Zweigen mit

 git push origin :<branchname> # deletes remote branch 

Nur Links werden gelöscht. Obwohl der Zweig tatsächlich gelöscht wird, sind in den lokalen Repositorys Ihrer Teammitglieder noch Links zu ihm vorhanden. Dies bedeutet, dass für andere Teammitglieder entfernte Zweigstellen immer noch sichtbar sind, wenn sie git branch -a .

Um dieses Problem zu lösen, können Mitglieder Ihres Teams gelöschte Zweige mit löschen

 git remote prune <repository> 

Dies ist in der Regel git remote prune origin .

338
07 нояб. die antwort wird gegeben pfrenssen 07 Nov. 2012-11-07 16:02 '12 am 16:02 2012-11-07 16:02
 git branch -D <name-of-branch> git branch -D -r origin/<name-of-branch> git push origin :<name-of-branch> 
250
24 окт. Antwort an Felipe 24. Oktober. 2013-10-24 20:36 '13 um 20:36 Uhr 2013-10-24 20:36

Es ist ganz einfach: Führen Sie einfach den folgenden Befehl aus:

Um einen Git-Zweig sowohl lokal als auch remote zu entfernen, entfernen Sie zunächst den lokalen Zweig mit dem Befehl:

 git branch -d example 

(hier example ist der Name der Niederlassung)

Löschen Sie anschließend den gelöschten Zweig mit dem Befehl:

 git push origin :example 
215
15 февр. antwortete Syeful Islam 15. Februar 2015-02-15 18:20 '15 um 18:20 2015-02-15 18:20

Ein anderer Ansatz:

 git push --prune origin 

ACHTUNG: Hiermit werden alle entfernten Zweigstellen gelöscht, die nicht lokal vorhanden sind. Oder umfassender,

 git push --mirror 

das entfernte Repository effektiv wie eine lokale Kopie des Repositorys aussehen lassen (lokale Header, Fernbedienungen und Tags werden auf der Remote-Site angezeigt).

181
18 нояб. Antwort von imanuelcostigan 18 Nov. 2012-11-18 09:11 '12 am 9:11 2012-11-18 09:11

Ich verwende Folgendes in meinen Bash- Einstellungen:

 alias git-shoot="git push origin --delete" 

Dann können Sie anrufen:

 git-shoot branchname 
152
03 апр. Die Antwort lautet crizCraig 03 Apr. 2013-04-03 01:11 '13 am 1:11 2013-04-03 01:11

Seit Januar 2013 hat GitHub auf der Seite "Branches" die Schaltfläche Delete branch neben jedem Branch eingefügt.

Relevanter Blogbeitrag: Erstellen und Löschen von Zweigen

120
29 апр. Die Antwort gibt Nacho Coloma am 29. April 2013-04-29 13:39 '13 am 13:39 2013-04-29 13:39

Wenn Sie beide Aktionen mit einem Befehl ausführen möchten, können Sie dies als Aliasnamen ~/.gitconfig indem Sie unten Ihre ~/.gitconfig hinzufügen:

 [alias] rmbranch = "!f(){ git branch -d ${1}  git push origin --delete ${1}; };f" 

Alternativ können Sie dies über die Befehlszeile mit Ihrer globalen Konfiguration hinzufügen

112
15 янв. Antwort von Ryan Kohn am 15. Januar 2013-01-15 22:05 13 um 22:05 Uhr 2013-01-15 22:05

Einen Zweig lokal und remote löschen

  • Kaufen Sie im Zweig - git checkout master - git checkout master

  • Löschen Sie den entfernten Zweig - git push origin --delete <branch-name>

  • Löschen Sie den lokalen Zweig - git branch --delete <branch-name>

106
04 янв. Die Antwort ist mfathy00 Januar 04 gegeben 2016-01-04 00:08 16 um 0:08 2016-01-04 00:08

Lokal löschen:

Um einen lokalen Zweig zu löschen, können Sie Folgendes verwenden:

 git branch -d <branch_name> 

Um einen Zweig zum Löschen zu zwingen, verwenden Sie -D anstelle von -D .

 git branch -D <branch_name> 

Remote löschen:

Es gibt zwei Möglichkeiten:

 git push origin :branchname git push origin --delete branchname 

Ich würde vorschlagen, dass Sie die zweite Methode verwenden, da sie intuitiver ist.

103
23 мая '15 в 11:56 2015-05-23 11:56 Die Antwort wird von Rahul Gupta am 23. Mai 15 um 11:56 2015-05-23 11:56 gegeben

Sie können dies auch mit git remote prune origin tun

 $ git remote prune origin Pruning origin URL: git@example.com/yourrepo.git * [pruned] origin/some-branchs 

Entfernt und entfernt entfernte Tracking-Zweige aus der Liste git branch -r .

97
12 марта '13 в 17:57 2013-03-12 17:57 Die Antwort ist Nickleefly 12. März 13 um 17:57 2013-03-12 17:57

Neben anderen Antworten verwende ich häufig das Tool git_remote_branch . Dies ist eine optionale Installation, bietet jedoch eine bequeme Möglichkeit, mit entfernten Zweigstellen zu interagieren. In diesem Fall löschen Sie:

 grb delete branch 

Ich finde, dass ich auch häufig die Befehle zum publish und track benutze.

95
24 марта '12 в 5:21 2012-03-24 05:21 Die Antwort wird gegeben u2622 24. März 12 um 5:21 2012-03-24 05:21

Zweige löschen

Nehmen wir an, unsere Arbeit im Bereich "Kontaktformular" ist abgeschlossen, und wir haben sie bereits in den "Master" integriert. Da wir es nicht mehr benötigen, können wir es (lokal) löschen:

 $ git branch -d contact-form 

Und um einen entfernten Zweig zu löschen:

 git push origin --delete contact-form 
86
30 окт. Die Antwort wird gegeben Ulysses Alves 30 Okt. 2015-10-30 15:39 '15 am 15:39 2015-10-30 15:39

Ein Linienbefehl entfernt sowohl lokale als auch entfernte:

D=branch-name; git branch -D $D; git push origin :$D

oder fügen Sie unten in ~ / .gitconfig einen Alias ​​hinzu; Verwendung: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. Die Antwort wird von Vinnie James am 17. November gegeben. 2016-11-17 04:03 '16 at 4:03. 2016-11-17 04:03

Löschen Sie einen entfernten Zweig

git push origin :<branchname>

Lokale Niederlassung löschen

git branch -D <branchname>

Lokale Übergangsschritte löschen:

  • Überprüfen Sie einen anderen Zweig
  • Lokale Niederlassung löschen
82
31 дек. Die Antwort ist jayxhj 31 Dez. gegeben. 2015-12-31 12:22 '16 am 12:22 2015-12-31 12:22

Sag einfach:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. Antwort von piyushmandovra am 23. April 2015-04-23 21:06 15 um 21:06 2015-04-23 21:06

Jetzt können Sie dies mit der GitHub Desktop-Anwendung tun.

Nach dem Start der Anwendung

  • Klicken Sie auf das Projekt, das den Zweig enthält
  • Gehen Sie zu dem Zweig, den Sie löschen möchten. 2019
22 окт. Die Antwort wird von Eric am 22. Oktober gegeben. 2015-10-22 10:38 '15 um 10:38 2015-10-22 10:38

Lokal löschen - (Normal),

 git branch -d my_branch 

Wenn Ihr Zweig gerade Rebase/Merge in progress / zusammengeführt wird und nicht ordnungsgemäß ausgeführt wurde, erhalten Sie die Rebase/Merge in progress In diesem Fall können Sie Ihren Zweig nicht löschen.

Daher müssen Sie entweder Überlauf / Zusammenführung zulassen, andernfalls können Sie die Verwendung zwangsweise entfernen

 git branch -d my_branch 

In Remote löschen:

 git push --delete origin my_branch 

kann dasselbe verwenden

 git push origin :my_branch # easy to remember both will do the same. 

Grafische Darstellung

2019

 git push origin --delete <branch Name> 

leichter zu merken als

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 Die Antwort wird gegeben Smila 02 Mai '15 um 13:59 2015-05-02 13:59

Dies funktioniert nicht, wenn Sie ein Tag mit demselben Namen wie der Fernsteuerungszweig haben:

 $ git push origin :branch-or-tag-name error: dst refspec branch-or-tag-name matches more than one. error: failed to push some refs to 'git@github.com:SomeName/some-repo.git' 

In diesem Fall müssen Sie angeben, dass Sie den Zweig löschen möchten, nicht das Tag:

 git push origin :refs/heads/branch-or-tag-name 

Um ein Tag anstelle eines Zweigs zu entfernen, müssen Sie Folgendes verwenden:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 Die Antwort wird gegeben Amiramix 29. Juli '14 um 12:02 2014-07-29 12:02

Ich war verärgert, hinter diese Antwort zu schauen, also habe ich die Antwort, die crizCraig zuvor veröffentlicht hatte , auf eine ähnliche Weise verfolgt.

Folgendes wird meinem bash-Profil hinzugefügt:

 function gitdelete(){ git push origin --delete $1 git branch -D $1 } 

Jedes Mal, wenn ich dies mit einem Zweig mache (z. B. beim Zusammenführen in einen master ), führe ich auf meinem Terminal Folgendes aus:

 gitdelete my-branch-name 

... die dann my-branch-name aus dem origin als lokal entfernt.

48
10 февр. Die Antwort wird am 10. Februar gegeben. 2016-02-10 22:47 '16 um 22:47 Uhr 2016-02-10 22:47

Viele andere Antworten führen zu Fehlern / Warnungen. Dieser Ansatz ist relativ zu git branch -D branch_to_delete obwohl Sie möglicherweise noch git branch -D branch_to_delete wenn er nicht vollständig zusammengeführt wird, z. B. in some_other_branch .

 git checkout some_other_branch git push origin :branch_to_delete git branch -d branch_to_delete 

Das Löschen ist nicht erforderlich, wenn Sie einen gelöschten Zweig löschen. Es wurde nur verwendet, um die fortschrittlichsten Fernbedienungen zu erhalten, die in dem Speicher verfügbar sind, den Sie verfolgen. Mir ist aufgefallen, dass git fetch Konsolen hinzufügt und nicht entfernt. Hier ist ein Beispiel, wenn git remote prune origin wirklich etwas tut:

Benutzer A führt die oben beschriebenen Schritte aus. Benutzer B führt die folgenden Befehle aus, um die neuesten Remote-Zweige anzuzeigen.

 git fetch git remote prune origin git branch -r 
47
27 нояб. Die Antwort wird von Brandon Cook am 27. November gegeben. 2013-11-27 06:04 '13 am 6:04 2013-11-27 06:04

Vor der Durchführung

 git branch --delete <branch> 

Stellen Sie sicher, dass Sie zuerst definieren, wie EXACT der Name des entfernten Zweigs ist, indem Sie Folgendes ausführen:

 git ls-remote 

Dadurch erfahren Sie, was Sie für den Wert von <branch> EXACT eingeben müssen. (Groß- und Kleinschreibung beachten!)

44
21 мая '16 в 0:42 2016-05-21 00:42 Antwort von joey am 21. Mai '16 um 0:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Wenn Sie sicher sind, dass Sie es entfernen möchten, führen Sie es aus

 git branch -D bugfix 

Jetzt wird das Löschen von Remote-Zweigstellen durchgeführt.

 git remote prune origin 
43
21 апр. Die Antwort gibt Vivek am 21. April. 2016-04-21 19:49 '16 um 19:49 Uhr 2016-04-21 19:49

Mashup alle anderen Antworten. Benötigt Ruby 1.9.3+ , nur unter OS X getestet.

Benennen Sie diese Datei git-remove , machen Sie sie ausführbar und geben Sie sie in Ihren Pfad ein. Verwenden Sie dann zum Beispiel git remove temp .

41
20 нояб. Die Antwort gibt Dan Rosenstark am 20. November. 2013-11-20 00:02 13 um 0:02 2013-11-20 00:02
  • 1
  • 2

Weitere Fragen zu Tags: oder Ask a Question