Plusieurs réponses ici sont tout à fait correctes, mais semblent ne pas avoir entièrement répondu à la question. Je vais donc faire une autre tentative.
Question du PO paraphrasée
Après avoir effectué un Demande de retrait et supprimer une branche sur GitHub/Bitbucket/etc. automatiquement en complétant le PR, je vois ensuite cette erreur lorsque je supprime la branche localement : warning: deleting branch 'old_branch' that has been merged to 'refs/remotes/origin/old_branch', but not yet merged to HEAD.
Comprendre la chronologie
GitHub, ou tout autre référentiel distant, n'a aucune connaissance de l'état local de votre machine.
Lorsqu'une demande de pull est terminée et qu'elle propose de supprimer la branche PR originale, elle n'a aucune connaissance de votre branche locale.
À ce stade, vous supprimez votre branche locale. Votre le repo/ordinateur local connaît cette ligne de temps :
-
myfeature
==> origin/myfeature
( myfeature
a été poussé vers le dépôt distant)
- puis
myfeature
est supprimé
- Así que
origin/myfeature
existe toujours, même si elle n'a pas de représentation locale
Bien sûr, ce n'est pas vrai, car la origin/myfeature
a été détruite à la fin de la RP, mais votre ordinateur local ne le sait pas. Donc, Git vous donne l'avertissement.
GitHub/BitBucket/etc. ne devrait-il pas rendre cela plus facile ?
Parce que le
PR terminé ==> Branche distante supprimée
Le paradigme est si commun qu'il serait bien que la branche distante informe d'une manière ou d'une autre la branche locale de cet événement. Mais Git s'est remarquablement bien débrouillé avec la "communication unidirectionnelle" où l'on demander uniquement des informations mais ne jamais envoyer d'informations non demandées . La communication "bidirectionnelle" dans un domaine inciterait probablement les gens à la vouloir dans d'autres domaines également, et bientôt nous nous retrouverions avec Git ressemblant davantage à SVN ou à tout autre paradigme de "dépôt central" qui était trop fragile pour réussir. Quelqu'un qui en sait plus que moi peut probablement mieux élaborer tous les problèmes que cette "communication bidirectionnelle" causerait.