Question git branche distante supprimée mais apparaît toujours dans 'branch -a'


Disons que j'ai eu 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 toujours:

remotes/origin/coolbranch

Quelque chose à remarquer, c'est que lorsque je clone un nouveau référentiel, tout va bien et git branch -a ne montre pas la branche.

Je veux savoir - est-il un moyen de supprimer la branche de la branch -a liste sans cloner une nouvelle instance?


417
2018-02-23 17:10


origine


Réponses:


git remote prune origin, comme suggéré dans l'autre réponse, supprimera toutes ces branches périmées. C'est probablement ce que vous voudriez dans la plupart des cas, mais si vous voulez juste supprimer cette branche de suivi à distance particulière, vous devriez faire:

git branch -d -r origin/coolbranch

(Le -r est facile à oublier ...)

-r dans ce cas "Liste ou supprime (si utilisé avec -d) les branches de suivi à distance." selon la documentation de git trouvée ici: https://git-scm.com/docs/git-branch


520
2018-02-23 20:32



As-tu essayé: git remote prune origin

Du git documents distants:

prune

Supprime tout périmé   branches de suivi à distance sous <nom>.   Ces branches périmées ont déjà été   supprimé du référentiel distant   référencé par <nom>, mais sont toujours   localement disponible dans "télécommandes / <nom>".   

 Avec l'option --dry-run, signalez   quelles branches seront taillées, mais   pas réellement les tailler.


236
2018-02-23 17:29



Ne pas oublier le génial

git fetch -p

qui récupère et élague toutes les origines.


188
2017-08-30 12:55



git remote prune <remote>

<remote> est un nom de source distante comme origine ou en amont.

Exemple: git remote prune origin


14
2018-03-23 10:53



Dans notre cas particulier, nous utilisons Stash comme notre référentiel git distant. Nous avons essayé tout ce qui précède et rien ne fonctionnait. Nous avons fini par devoir 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 apporter des modifications, ils devaient faire ce qui suit:

git fetch -p

13
2017-08-19 12:24