salut
Scénario--
J'ai plusieurs branches personnelles distantes que nous utilisons pour la sauvegarde personnelle, mais une fois notre tâche terminée, nous devons supprimer ces branches personnelles, mais je ne suis pas en mesure de les supprimer.
Que suis-je en train de faire?
J'utilise certaines commandes pour supprimer ces branches
git push origin : refs/origin/personal/SSOID/branch_Name
git push --force origin :refs/origin/personal/SSOID/branch_Name1
Qu'est-ce qui se passe?
La commande ci-dessus affiche un succès, mais lorsque je vérifie à partir d'une autre instance de git, ces commandes sont présentes, ce qui signifie qu'elles ne sont pas supprimées de la télécommande.
Chaque dépôt a ses propres branches de suivi à distance. Si vous supprimez la branche sur la copie du serveur, celle sur votre ordinateur sera toujours là. Vous devez également supprimer votre branche locale. Vous avez donc deux branches à supprimer. La branche de suivi origin/personal/SSOID/.,.. et vous avez votre branche locale dans votre référentiel local qui correspond à cette branche.
Dans celui que vous vérifiez, vous voyez la branche de suivi existante. La branche distante a déjà été supprimée. Git est distribué mais il ressemble plus à des silos avec des fils. Je mets quelque chose dans silo1 et le pousse vers silo 2. Silo2 a maintenant ce que j'ai fait dans silo1. Si je supprime la branche dans silo1, silo2 aura toujours une branche de suivi vers cette branche.
Vous pouvez supprimer les branches de suivi obsolètes décrites par vbjay de toute "autre instance git" pour une télécommande nommée "origine" en utilisant la commande suivante sur chaque autre instance git :
git remote prune origin
Ou, dans GitExtensions :
Lié à #1583
En relation avec cela, il serait facile de définir --prune
pendant git fetch
, par exemple, à titre de comparaison, la boîte de dialogue de récupération de SourceTree a une case à cocher pour cela. Je trouve GitExtensions plus efficace à utiliser pour presque tout, mais git fetch --prune
est une exception notable à cela.
Commentaire le plus utile
Vous pouvez supprimer les branches de suivi obsolètes décrites par vbjay de toute "autre instance git" pour une télécommande nommée "origine" en utilisant la commande suivante sur chaque autre instance git :
Ou, dans GitExtensions :