Disons que j'avais une branche nommée coolbranch
dans mon référentiel.
Maintenant, j'ai décidé de le supprimer (à la fois à distance et localement) avec:
git Push Origin :coolbranch
git branch -D coolbranch
Génial! Maintenant, la branche est vraiment supprimée.
Mais quand je cours
git branch -a
Je reçois encore:
remotes/Origin/coolbranch
Il convient de noter que lorsque je clone un nouveau référentiel, tout va bien et git branch -a
ne montre pas la branche.
Je veux savoir - existe-t-il un moyen de supprimer la branche de la liste branch -a
sans cloner une nouvelle instance?
git remote Prune Origin
, comme suggéré dans l'autre réponse, supprimera toutes ces branches éventées. C'est probablement ce que vous souhaiteriez dans la plupart des cas, mais si vous souhaitez simplement supprimer cette branche de suivi à distance particulière, vous devez procéder comme suit:
git branch -d -r Origin/coolbranch
(Le -r
est facile à oublier ...)
Dans ce cas, -r "listera ou supprimera (si utilisé avec -d) les branches de suivi à distance". selon la documentation git trouvée ici: https://git-scm.com/docs/git-branch
Avez-vous essayé: git remote Prune Origin
Depuis le git remote docs :
Taillez
Supprime toutes les branches de suivi à distance obsolètes sous <nom>. Ces branches obsolètes ont déjà été supprimées du référentiel distant référencé par <nom>, mais sont toujours disponibles localement dans "télécommandes/<nom>".
Avec l'option --dry-run, indique quelles branches seront élaguées, mais ne les élaguez pas réellement.
N'oubliez pas le génial
git fetch -p
qui va chercher et prunir toutes les origines.
Dans notre cas particulier, nous utilisons Stash comme référentiel git distant. Nous avons essayé tout ce qui précède et rien ne fonctionnait. Nous avons fini par avoir à faire ce qui suit:
git branch –D branch-name (delete from local)
git Push Origin :branch-name (delete from remote)
Ensuite, lorsque les utilisateurs allaient extraire les modifications, ils devaient procéder comme suit:
git fetch -p
git remote Prune <remote>
Où <remote>
est un nom de source distant tel que Origin ou en amont.
exemple: git remote Prune Origin