remote Comment supprimer une branche Git localement et à distance?




git rename branch (24)

La réponse de Matthew est excellente pour supprimer des branches distantes et j'apprécie également l'explication, mais pour faire une distinction simple entre les deux commandes:

Pour supprimer une branche locale de votre machine:

git branch -d {the_local_branch} (utilisez -D place pour forcer la suppression de la branche sans vérifier le statut fusionné)

Pour supprimer une branche distante du serveur:

git push origin --delete {the_remote_branch}

Référence: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

Je veux supprimer une branche à la fois localement et sur mon fork de projet distant sur GitHub .

Échec des tentatives de suppression de la branche distante

$ 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 la branche remotes/origin/bugfix fois localement et sur GitHub?


Pour supprimer votre succursale localement et à distance

  • Passer à la branche principale - git checkout master

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

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


C’est simple: il suffit d’exécuter la commande suivante:

Pour supprimer une branche Git localement et à distance, supprimez d'abord la branche locale à l'aide de la commande suivante:

git branch -d example

(ici l' example est le nom de la branche)

Et après cette suppression de la branche distante à l'aide de la commande:

git push origin :example

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

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

L'élagage à distance n'est pas nécessaire si vous avez supprimé la branche distante. Il est uniquement utilisé pour obtenir les télécommandes les plus récentes disponibles sur un référentiel que vous suivez. J'ai observé que git fetch ajoutera des télécommandes, pas les supprimera. Voici un exemple de cas où git remote prune origin fera quelque chose:

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

git fetch
git remote prune origin
git branch -r

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

Après avoir lancé l'application

  1. Cliquez sur le projet contenant la branche
  2. Basculer vers la branche que vous souhaitez supprimer
  3. Dans le menu "Branch", sélectionnez "Unpublish ..." pour supprimer la branche des serveurs GitHub.
  4. Dans le menu "Branche", sélectionnez "Supprimer" nom de branche "..." pour supprimer la branche de votre ordinateur local (c'est-à-dire l'ordinateur sur lequel vous travaillez actuellement).

git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>

Pour supprimer localement - (Normal),

git branch -d my_branch

Si votre branche en cours de rebasage / fusion et que cela n'a pas été fait correctement signifie que vous obtiendrez une erreur Rebase/Merge in progress . Dans ce cas, vous ne pourrez pas supprimer votre branche.

Donc, soit votre besoin de résoudre le rebasage / fusion, sinon vous pouvez forcer la suppression en utilisant,

git branch -D my_branch

Pour supprimer dans Remote:

git push --delete origin my_branch

peut faire la même chose en utilisant,

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

Représentation graphique,


git push origin --delete branchName

est plus facile à retenir que

git push origin :branchName

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

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

#!/usr/bin/env ruby
require 'io/console'

if __FILE__ == $0
      branch_name = ARGV[0] if (ARGV[0])
      print "Press Y to force delete local and remote branch #{branch_name}..."
    response = STDIN.getch
    if ['Y', 'y', 'yes'].include?(response)
      puts "\nContinuing."
      `git branch -D #{branch_name}`
      `git branch -D -r origin/#{branch_name}`
      `git push origin --delete #{branch_name}` 
    else
      puts "\nQuitting."
    end
end

Vous pouvez également utiliser ce qui suit pour supprimer la branche distante.

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.


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

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

$ git remote prune origin
Pruning origin
URL: [email protected]/yourrepo.git
 * [pruned] origin/some-branchs

Il élague et supprime les branches de suivi à distance d'une liste de branches git branch -r .


Suppression de branches

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

$ git branch -d contact-form

Et pour supprimer la branche distante:

git push origin --delete contact-form

En plus des autres réponses, j'utilise souvent l'outil git_remote_branch . C'est une installation supplémentaire, mais elle vous offre un moyen pratique d'interagir avec les branches distantes. Dans ce cas, supprimer:

grb delete branch

Je constate que j'utilise aussi assez souvent les commandes publish et track .


Une autre approche est

git push --prune origin

AVERTISSEMENT: Ceci supprimera toutes les branches distantes qui n'existent pas localement. Ou de manière plus complète,

git push --mirror

fera en sorte que le référentiel distant ressemble à la copie locale du référentiel (les en-têtes locaux, les télécommandes et les balises sont mis en miroir sur le système distant).


Une commande de doublure supprime local et distant :

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

ou ajoutez l'alias ci-dessous à votre ~ / .gitconfig ; utilisation: git kill branch-name

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

Dites simplement:

git branch -d <branch-name>
git push origin :<branch-name>

Supprimer localement:

Pour supprimer une branche locale, vous pouvez utiliser:

git branch -d branch_name 

Pour supprimer de force une branche, 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 manière car elle est plus intuitive.


Résumé

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

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

Supprimer une branche locale

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

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

Remarque: L'option -d est un alias pour --delete , qui ne supprime la branche que si elle a déjà été complètement fusionnée dans sa branche en amont. Vous pouvez également utiliser -D , qui est un alias pour --delete --force , qui supprime la branche "quel que soit son statut fusionné". [Source: man git-branch ]

Supprimer une succursale distante [Mis à jour le 8 sept. 2017]

A partir de Git v1.7.0 , vous pouvez supprimer une branche distante en utilisant

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

qui pourrait être plus facile à retenir que

$ git push <remote_name> :<branch_name>

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

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

Par conséquent, la version de Git que vous avez installée déterminera si vous devez utiliser la syntaxe la plus simple ou la plus difficile.

Supprimer une branche distante [Réponse originale du 5 janvier 2010]

Extrait du chapitre 3 de Pro Git de Scott Chacon:

Suppression de branches distantes

Supposons que vous en ayez fini avec une branche distante - par exemple, vos collaborateurs et vous-même en avez terminé avec une fonctionnalité et l'avez fusionnée dans la branche principale de votre télécommande (ou quelle que soit la branche dans laquelle se trouve votre ligne de code stable). Vous pouvez supprimer une branche distante en utilisant la syntaxe plutôt obtuse git push [remotename] :[branch] . Si vous souhaitez supprimer votre branche serverfix du serveur, exécutez la procédure suivante:

$ git push origin :serverfix
To [email protected]:schacon/simplegit.git
 - [deleted]         serverfix

Boom. Plus de branche sur votre serveur. Vous voudrez peut-être parcourir cette page, car vous aurez besoin de cette commande et vous oublierez probablement la syntaxe. Une façon de se souvenir de cette commande est de rappeler la git push [remotename] [localbranch]:[remotebranch] que nous avons déjà git push [remotename] [localbranch]:[remotebranch] un peu plus tôt. Si vous laissez de côté la partie [localbranch] , alors vous dites essentiellement: «Ne prenez rien de mon côté et faites en sorte que ce soit [remotebranch] ».

J'ai publié git push origin :bugfix et cela a fonctionné à merveille. Scott Chacon avait raison - je voudrai m'entendre sur cette page (ou sur l'oreille en répondant à ).

Ensuite, vous devriez l'exécuter sur d'autres machines

git fetch --all --prune

propager les changements.


Conseil: lorsque vous supprimez des branches à l’aide de

git branch -d <branchname>    # deletes local branch

ou

git push origin :<branchname> # deletes remote branch

seules les références sont supprimées. Même si la branche est réellement supprimée de la télécommande, les références à 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 supprimées sont toujours visibles lorsqu’elles font une git branch -a .

Pour résoudre ce problème, les membres de votre équipe peuvent élaguer les branches supprimées avec

git remote prune <repository>

Ceci est typiquement git remote prune origin


Avant d'exécuter

git branch --delete <branch>

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

git ls-remote

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


Supprimer une branche distante

git push origin :<branchname>

Supprimer la branche locale

git branch -D <branchname>

Supprimer les étapes de la branche locale:

  1. passer à une autre succursale
  2. supprimer une branche locale

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, pour nettoyer les branches supprimées, exécutez

git remote prune origin

Si vous souhaitez supprimer une branche, commencez par extraire à la branche à supprimer.

git checkout other_than_branch_to_be_deleted

Suppression de la branche locale:

git branch -D branch_to_be_deleted

Suppression de la branche distante:

git push origin --delete branch_to_be_deleted






git-remote