Comme mentionné par @Josh dans un commentaire sur Réponse de Nathan McDaniel Si la branche n'existe plus dans le référentiel distant, cela est probablement dû au fait que la branche n'existe plus dans le référentiel distant. Cela provoque git branch -a
pour continuer à montrer la branche sous origin
(ou quel que soit le nom que vous avez donné à ce dépôt distant particulier), mais la suppression de la branche sur le dépôt distant est impossible car elle n'existe plus sur le dépôt distant. Cela a pu être causé par la suppression de la branche sur le référentiel distant à partir d'un autre ordinateur (en plus du fait que la branche n'existe plus sur le référentiel distant). git pull
y git fetch
ne pas supprimer les références aux branches distantes qui ont été supprimées du référentiel distant).
La solution
Il suffit de supprimer toutes les branches de suivi à distance qui ont déjà été supprimées du référentiel distant avec git remote prune
:
git remote prune REMOTENAME
Par exemple, si le nom de votre télécommande est origin
(probable), la commande ci-dessus se présenterait comme suit :
git remote prune origin
D'après la documentation fournie avec git
:
git remote prune [-n | --dry-run] <name>
Supprime toutes les branches de suivi à distance périmées sous <name>
. Ces branches périmées ont déjà été supprimées du référentiel distant référencé par <name>
mais sont toujours disponibles localement dans "remotes/".
Avec --dry-run
indique les branches à élaguer, mais ne les élague pas réellement.