Comment supprimer une branche Git localement et à distance?

Je veux supprimer une branche à la fois localement et dans mon plug-in de projet distant sur GitHub .

Impossible de supprimer la branche supprimée

 $ 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. 

Que dois-je faire différemment pour supprimer avec succès remotes/origin/bugfix fois localement et sur GitHub?

14380
05 янв. Matthew Rankin fixé le 05 janvier 2010-01-05 04:12 '10 à 4:12 2010-01-05 04:12
@ 40 réponses
  • 1
  • 2

Résumé exécutif

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

Notez que dans la plupart des cas, le nom supprimé est l’ origin .

Supprimer la branche locale

Pour supprimer une branche locale, utilisez l’une des méthodes suivantes:

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

Note Le paramètre -d est un pseudonyme pour --delete , qui supprime une branche uniquement si elle est déjà complètement fusionnée avec la branche parente. Vous pouvez également utiliser -d , qui est un alias de --delete --force , qui supprime la branche "quel que soit son statut combiné". [Source: man git-branch ]

Supprimer le fil de discussion supprimé [Mis à jour le 8 septembre 2017]

À partir de Git v1.7.0 , vous pouvez supprimer une branche supprimée à l' aide de

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

quoi de plus facile à retenir que

 $ git push <remote_name> :<branch_name> 

qui a été ajouté dans Git v1.5.0 "pour supprimer une branche ou une balise supprimée".

À partir de Git v2.8.0, vous pouvez également utiliser git push avec -d comme alias pour --delete .

Ainsi, la version de Git que vous avez installée déterminera si vous devez utiliser une syntaxe plus simple ou plus complexe.

Supprimer une branche supprimée [Réponse originale en date du 5 janvier 2010]

Du chapitre 3 de Pro Git de Scott Chacon:

Suppression de branches supprimées

Supposons que vous vous retrouviez avec une branche distante - par exemple, vos collaborateurs et vous-même disposiez d'une fonction que vous associez à votre branche principale de la télécommande (ou à toute autre branche contenant votre ligne de code stable). Vous pouvez supprimer une branche distante en utilisant la syntaxe plutôt franche de git push [remotename] :[branch] . Si vous souhaitez supprimer le correctif de serveur du serveur, procédez comme suit:

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

Boom Pas plus de branches sur votre serveur. Vous voudrez peut-être afficher cette page car vous avez besoin de cette commande et vous oublierez probablement la syntaxe. Pour mémoriser cette commande, la git push [remotename] [localbranch]:[remotebranch] est la suivante: git push [remotename] [localbranch]:[remotebranch] que nous avons revue un peu plus tôt. Si vous êtes la partie [localbranch] de [localbranch] , dites en gros: "Ne prenez rien de mon côté et faites-le [remotebranch] ".

J'ai publié git push origin :bugfix et cela a bien fonctionné. Scott Chacon avait raison - je veux écouter cette page (ou, en fait, l'oreille d'un chien qui réagit dans Stack Overflow).

Ensuite, vous devez le faire sur d'autres machines.

 git fetch --all --prune 

propager les changements.

17997
05 янв. La réponse est donnée par Matthew Rankin le 05 janvier. 2010-01-05 04:13 '10 à 4:13 2010-01-05 04:13

La réponse de Matthew est excellente pour supprimer des branches supprimées, et je suis également reconnaissant pour l'explication, mais pour la simple différence entre les deux commandes:

Pour supprimer une branche locale De votre appareil:

git branch -d {the_local_branch} (utilisez -D au lieu de supprimer de force une branche sans vérifier l'état de fusion)

border=0

Pour supprimer un serveur de succursale distant d'un serveur:

git push origin --delete {the_remote_branch}

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

2944
12 июня '12 в 17:51 2012-06-12 17:51 la réponse est donnée par Eric Brotto le 12 juin '12 à 17:51. 2012-06-12 17:51

Réponses courtes

Si vous souhaitez des explications plus détaillées sur les commandes suivantes, voir les réponses longues dans la section suivante.

Supprimer une branche distante:

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

Suppression d’une branche de suivi à distance locale:

1697
30 мая '14 в 21:32 2014-05-30 21:32 la réponse est donnée par user456814 30 mai '14 à 21:32 2014-05-30 21:32

Étapes pour supprimer une branche:

supprimer une branche distante:

 git push origin --delete <your_branch> 

Pour supprimer une branche locale, vous avez trois options :

 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 

Expliquez: bon, expliquez simplement ce qui se passe ici!

Il suffit d’exécuter git push origin --delete pour supprimer UNIQUEMENT la branche supprimée , ajouter le nom de la branche à la fin, et le supprimer et l’envoyer à la branche distante ...

Aussi, git branch -D , qui supprime simplement SEULEMENT la branche locale! ...

-D signifie --delete --force qui supprime une branche, même si elle n'est pas fusionnée (suppression forcée), mais vous pouvez également utiliser -D qui signifie --delete qui - --delete erreur correspondant à l'état de fusion de la branche ...

Je crée aussi une image ci-dessous pour montrer les étapes:

2019

Vous pouvez également utiliser ce qui suit pour supprimer une branche supprimée.

 git push --delete origin serverfix 

Qui fait la même chose que

 git push origin :serverfix 

mais il peut être plus facile de se souvenir.

719
28 окт. réponse donnée page 28 octobre. 2011-10-28 01:22 '11 à 1:22 2011-10-28 01:22

Si vous souhaitez supprimer une branche, quittez d'abord une branche autre que celle que vous souhaitez supprimer.

 git checkout other_than_branch_to_be_deleted 

Supprimer une branche locale:

 git branch -D branch_to_be_deleted 

Supprimer une branche distante:

 git push origin --delete branch_to_be_deleted 
350
07 окт. la réponse est donnée par Praveen Hiremath Oct 07 2014-10-07 16:52 14 à 16:52 2014-10-07 16:52

Astuce: lors de la suppression de branches avec

 git push origin :<branchname> # deletes remote branch 

Seuls les liens sont supprimés. Bien que la branche soit réellement supprimée, des liens vers celle-ci existent toujours dans les référentiels locaux des membres de votre équipe. Cela signifie que pour les autres membres de l'équipe, les branches distantes sont toujours visibles lorsqu'elles git branch -a .

Pour résoudre ce problème, les membres de votre équipe peuvent supprimer les branches supprimées à l'aide de

 git remote prune <repository> 

C’est généralement git remote prune origin .

338
07 нояб. la réponse est donnée pfrenssen le 07 novembre 2012-11-07 16:02 '12 à 16h02: 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 окт. réponse donnée à Felipe le 24 octobre. 2013-10-24 20:36 13 à 20h36 2013-10-24 20:36

C'est simple: lancez la commande suivante:

Pour supprimer une branche Git localement et à distance, commencez par supprimer la branche locale à l'aide de la commande suivante:

 git branch -d example 

(ici, le nom de la succursale)

Et après cela, supprimez la branche supprimée à l'aide de la commande:

 git push origin :example 
215
15 февр. a répondu à Syeful Islam 15 février 2015-02-15 18:20 '15 à 18h20 2015-02-15 18:20

Une autre approche:

 git push --prune origin 

ATTENTION: Ceci supprimera toutes les branches distantes qui n'existent pas localement. Ou plus complet,

 git push --mirror 

faire en sorte que le référentiel distant ressemble à une copie locale du référentiel (les en-têtes locaux, les télécommandes et les balises sont reflétés sur le distant)

181
18 нояб. Réponse donnée par imanuelcostigan le 18 nov. 2012-11-18 09:11 '12 à 9:11 2012-11-18 09:11

J'utilise les éléments suivants dans mes paramètres bash :

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

Ensuite, vous pouvez appeler:

 git-shoot branchname 
152
03 апр. La réponse est donnée à crizCraig 03 avr. 2013-04-03 01:11 '13 à 1:11 2013-04-03 01:11

Depuis janvier 2013, GitHub a inclus le bouton Supprimer une branche à côté de chaque branche sur la page "Branches".

Article de blog pertinent: créer et supprimer des branches

120
29 апр. la réponse est donnée par Nacho Coloma le 29 avril 2013-04-29 13:39 13 à 13:39 2013-04-29 13:39

Si vous voulez effectuer ces deux actions avec une seule commande, vous pouvez la ~/.gitconfig en ajoutant votre ~/.gitconfig ci-dessous à votre:

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

Alternativement, vous pouvez ajouter ceci à votre configuration globale à partir de la ligne de commande en utilisant

112
15 янв. Réponse donnée par Ryan Kohn le 15 janvier 2013-01-15 22:05 13 à 22h05: 2013-01-15 22:05

Pour supprimer une branche localement et à distance

  • Effectuez un achat dans la branche - git checkout master

  • Supprimer la branche distante - git push origin --delete <branch-name>

  • Supprimer la branche locale - branche git branch --delete <branch-name>

106
04 янв. la réponse est donnée mfathy00 Jan 04 2016-01-04 00:08 '16 à 0:08 2016-01-04 00:08

Supprimer localement:

Pour supprimer une branche locale, vous pouvez utiliser:

 git branch -d <branch_name> 

Pour forcer une branche à supprimer, utilisez -D au lieu de -D .

 git branch -D <branch_name> 

Supprimer à distance:

Il y a deux options:

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

Je suggérerais que vous utilisiez la 2ème méthode, car elle est plus intuitive.

103
23 мая '15 в 11:56 2015-05-23 11:56 la réponse est donnée par Rahul Gupta le 23 mai 2015 à 11:56 2015-05-23 11:56

Vous pouvez également le faire en utilisant git remote prune origin

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

Il supprime et supprime les branches de suivi distantes de la liste git branch -r .

97
12 марта '13 в 17:57 2013-03-12 17:57 la réponse est donnée nickleefly 12 Mars 13 à 17:57 2013-03-12 17:57

En plus d'autres réponses, j'utilise souvent l'outil git_remote_branch . Il s'agit d'une installation facultative, mais elle vous offre un moyen pratique d'interagir avec les branches distantes. Dans ce cas, supprimez:

 grb delete branch 

Je constate également que j'utilise souvent les commandes publish et track .

95
24 марта '12 в 5:21 2012-03-24 05:21 la réponse est donnée u2622 le 24 mars '12 à 5:21 2012-03-24 05:21

Suppression de branches

Supposons que notre travail sur la branche "contact-form" soit terminé et que nous l'ayons déjà intégré au "maître". Puisque nous n'en avons plus besoin, nous pouvons le supprimer (localement):

 $ git branch -d contact-form 

Et pour supprimer une branche distante:

 git push origin --delete contact-form 
86
30 окт. la réponse est donnée à Ulysses Alves 30 oct. 2015-10-30 15:39 '15 à 15:39 2015-10-30 15:39

Une commande de doublure supprime à la fois local et distant:

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

ou ajoutez un alias ci-dessous dans ~ / .gitconfig; utilisation: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. La réponse est donnée par Vinnie James le 17 novembre. 2016-11-17 04:03 '16 à 4h03. 2016-11-17 04:03

Supprimer une branche distante

git push origin :<branchname>

Supprimer la branche locale

git branch -D <branchname>

Supprimer les étapes de transition locales:

  • vérifier sur une autre branche
  • supprimer une branche locale
82
31 дек. La réponse est donnée jayxhj le 31 décembre 2015-12-31 12:22 '16 à 12:22 2015-12-31 12:22

Dites simplement:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. réponse donnée par piyushmandovra le 23 avril 2015-04-23 21:06 '15 à 21:06 2015-04-23 21:06

Vous pouvez maintenant faire cela avec l' application GitHub Desktop .

Après avoir démarré l'application

  • Cliquez sur le projet contenant la branche
  • Accédez à la branche que vous souhaitez supprimer. 2019
22 окт. La réponse est donnée par Eric le 22 octobre. 2015-10-22 10:38 '15 à 10:38 2015-10-22 10:38

Pour supprimer localement - (Normal),

 git branch -d my_branch 

Si votre branche est en cours de récupération / fusion et qu'elle n'a pas été effectuée correctement, vous recevrez un message d'erreur Rebase/Merge in progress . Dans ce cas, vous ne pourrez pas supprimer votre branche.

Ainsi, vous devez autoriser le dépassement / la fusion, sinon vous pouvez supprimer de force en utilisant

 git branch -d my_branch 

Pour supprimer dans Remote:

 git push --delete origin my_branch 

peut utiliser la même chose

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

Présentation graphique

2019

 git push origin --delete <branch Name> 

plus facile à retenir que

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 la réponse est donnée Smila le 02 mai '15 à 13:59 2015-05-02 13:59

Cela ne fonctionnera pas si vous avez une étiquette portant le même nom que la branche de contrôle à distance:

 $ 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' 

Dans ce cas, vous devez spécifier que vous souhaitez supprimer la branche, pas la balise:

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

De même, pour supprimer une balise au lieu d'une branche, vous devez utiliser:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 la réponse est donnée à Amiramix le 29 juillet 2014 à 12:02 2014-07-29 12:02

J'étais ennuyé de regarder derrière cette réponse, j'ai donc adopté une approche similaire à celle que crizCraig avait précédemment publiée.

Le texte suivant est ajouté à mon profil bash:

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

Ensuite, chaque fois que je fais cela avec une branche (par exemple, une fusion dans un master ), je lance ce qui suit sur mon terminal:

 gitdelete my-branch-name 

... qui supprime ensuite my-branch-name de l' origin tant que localement.

48
10 февр. La réponse est donnée arthurakay le 10 février. 2016-02-10 22:47 '16 à 22h47 2016-02-10 22:47

Beaucoup d'autres réponses mèneront à des erreurs / avertissements. Cette approche est relative à git branch -D branch_to_delete bien que vous ayez peut-être encore besoin de git branch -D branch_to_delete si elle n'est pas complètement fusionnée, par exemple dans some_other_branch .

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

La suppression n'est pas nécessaire si vous supprimez une branche supprimée. Il a été utilisé uniquement pour obtenir les télécommandes les plus avancées disponibles dans la mémoire que vous suivez. J'ai remarqué que git fetch va ajouter des consoles, pas les supprimer. Voici un exemple de cas où git remote prune origin fait vraiment quelque chose:

L'utilisateur A effectue les étapes décrites ci-dessus. L'utilisateur B exécutera les commandes suivantes pour afficher les branches distantes les plus récentes.

 git fetch git remote prune origin git branch -r 
47
27 нояб. La réponse est donnée par Brandon Cook le 27 novembre. 2013-11-27 06:04 '13 à 6:04 2013-11-27 06:04

Avant d'effectuer

 git branch --delete <branch> 

Assurez-vous d’abord de définir EXACT le nom de la branche distante en exécutant:

 git ls-remote 

Cela vous indiquera quoi entrer EXACTEMENT pour la valeur de <branch> . (sensible à la casse de la branch !)

44
21 мая '16 в 0:42 2016-05-21 00:42 réponse donnée par joey le 21 mai 2016 à 00:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Si vous êtes sûr de vouloir le supprimer, lancez

 git branch -D bugfix 

Maintenant, la suppression des branches distantes distantes est en cours.

 git remote prune origin 
43
21 апр. la réponse est donnée à Vivek le 21 avril. 2016-04-21 19:49 '16 à 19:49 PM 2016-04-21 19:49

Mashup toutes les autres réponses. Nécessite Ruby 1.9.3+ , testé uniquement sous OS X.

Nommez ce fichier git-remove , rendez-le exécutable et mettez-le dans votre chemin. Ensuite, utilisez, par exemple, git remove temp .

41
20 нояб. la réponse est donnée à Dan Rosenstark le 20 nov. 2013-11-20 00:02 '13 à 0:02 2013-11-20 00:02
  • 1
  • 2

Autres questions sur les balises ou Poser une question