Note Le libellé a été modifié en réponse aux commentaires. Merci @slekse
Ce n'est pas une erreur, c'est un avertissement. Cela signifie que la branche que vous vous apprêtez à supprimer contient des validations qui ne sont pas accessibles depuis sa branche en amont, ou HEAD (révision actuellement vérifiée). En d'autres termes, vous pourriez perdre des validations¹.
En pratique, cela signifie que vous avez probablement modifié, rebasé (y compris fusion par écrasement) ou filtré des validations et elles ne semblent pas identiques.
Par conséquent, vous pourriez éviter l'avertissement en vérifiant une branche contenant les validations que vous êtes sur le point de dé-référencer en supprimant cette autre branche.²
Vous voudrez vérifier que vous ne manquez effectivement aucune validation vitale:
git log --graph --left-right --cherry-pick --oneline master...experiment
Cela vous donnera une liste des validations non partagées entre les branches. Au cas où cela vous intéresserait, il pourrait y avoir une différence sans le --cherry-pick
et cette différence pourrait bien être la raison de l'avertissement que vous recevez:
--cherry-pick
Exclure toute validation qui introduit le même changement qu'une autre validation du "côté opposé" lorsque l'ensemble des validations est limité avec une différence symétrique. Par exemple, si vous avez deux branches, A et B, une façon habituelle de lister toutes les validations d'un côté seulement est avec --left-right, comme l'exemple ci-dessus dans la description de cette option. Cependant, cela montre les validations qui ont été cherry-pickées de l'autre branche (par exemple, "3ème sur b" pourrait être cherry-pickée depuis la branche A). Avec cette option, de tels paires de validations sont exclues de la sortie.
¹ elles ne sont vraiment collectées que plus tard, par défaut. De plus, la commande git-branch
ne vérifie pas l'arborescence de révision de toutes les branches. L'avertissement est là pour éviter les erreurs évidentes.
² (Ma préférence ici est simplement de forcer la suppression, mais vous pourriez préférer avoir cette assurance supplémentaire).
2 votes
Ce message vous aide-t-il? stackoverflow.com/questions/1710894/…
2 votes
Cela se produit parfois lorsque j'ai effectué un
git commit --amend
43 votes
Aussi - Soyez conscient que ce message apparaîtra après un
squash
: stackoverflow.com/q/41946475/1099411 votes
Je pense que le scénario le plus courant est que vous devez simplement extraire vos modifications nouvellement fusionnées avant de supprimer la branche localement.