85 votes

Comment supprimer une branche distante dans Git?

J'ai créé une succursale notmaster de commettre ainsi que pousser certains changements. Quand j'ai eu fini avec cette branche, j'ai fusionné les modifications dans master, poussé, et ensuite supprimé le local notmaster.

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/notmaster

Est-il de toute façon à supprimer la télécommande notmaster?


Un peu plus de clarté, avec la solution de Ionut:

La méthode habituelle a échoué pour moi:

$ git push origin :notmaster
error: dst refspec notmaster matches more than one.

C'est parce que j'avais une étiquette avec le même nom que celui de la direction. C'était un mauvais choix de ma part et provoqué l'ambiguïté. Donc, dans ce cas:

$ git push origin :refs/heads/notmaster

60voto

Ionuț G. Stan Points 62482

git push origin :notmaster , ce qui signifie fondamentalement "rien ne pousse vers la télécommande notmaster".

Vous pouvez également utiliser git branch -d -r origin/notmaster , mais je ne sais pas quelle version de Git prend en charge la combinaison -d -r .

16voto

jasonrudolph Points 148
git push origin --delete notmaster

Si vous utilisez Git 1.7.0 ou plus tard, cela fera l'affaire. Avant Git 1.7.0, vous avez besoin d'utiliser au moins intuitif (mais tout aussi efficace) syntaxe:

git push origin :notmaster

L'ancienne syntaxe fonctionne toujours dans les plus récentes versions de Git, mais la nouvelle syntaxe semble plus humaine et plus facile à retenir. Si je veux supprimer une branche, en tapant --delete semble être la chose naturelle à faire.

À partir de la version 1.7.0 notes de publication:

"git push" appris "git push origin --supprimer la branche", un sucre syntaxique pour "git push origin :la branche".

6voto

aasha Points 250

Cela est dû au fait que le nom de la branche et de la balise est identique. Pour supprimer la branche, utilisez git push origin: refs / heads / branchname. Pour supprimer la balise, utilisez git push origin: refs / tags / tagname.

Cela supprimera la branche et l'étiquette de la télécommande. Pour supprimer du local, vous pouvez utiliser respectivement git branch -d branchname et git tag -d tagname

1voto

Tom Points 696

Supprimer la branche locale:

 git branch -d {branch name} //All changes must be committed first.
git branch -D {branch name} //Does not require commit.
 

Supprimer Gitorious Branch:

 Delete the local branch first.
git push {gitorious push url} :{branch name}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X