Git vous avertit que vous risquez de perdre l'historique en supprimant cette branche. Même si cela ne supprimait pas immédiatement les validations, certaines ou toutes les validations de la branche deviendraient inaccessibles si elles ne faisaient pas partie d'une autre branche également.
Pour que la branche experiment
soit «complètement fusionnée» dans une autre branche, son commit de tip doit être un ancêtre du tip de l'autre branche, ce qui rend les commits dans experiment
un sous-ensemble de l'autre branche. Cela permet de le supprimer en toute sécurité experiment
, car toutes ses validations resteront dans l'historique du référentiel via l'autre branche. Il doit être «entièrement» fusionné, car il a peut-être déjà été fusionné plusieurs fois, mais des commits ont maintenant été ajoutés depuis la dernière fusion qui ne sont pas contenus dans l'autre branche.
Cependant, Git ne vérifie pas toutes les autres branches du référentiel; seulement deux:
- La branche actuelle (HEAD)
- La branche amont, s'il y en a une
La «branche amont» pour experiment
, comme dans votre cas, l'est probablement origin/experiment
. Si experiment
est complètement fusionné dans la branche actuelle, Git le supprime sans aucune réclamation. Si ce n'est pas le cas, mais qu'il est complètement fusionné dans sa branche en amont, Git continue avec un avertissement ressemblant à:
warning: deleting branch 'experiment' that has been merged
to 'refs/remotes/origin/experiment', but not yet merged to
HEAD.
Deleted branch experiment (was xxxxxxxx).
Où xxxxxxxx
indique un ID de validation. Être complètement fusionné dans son amont indique que les validations experiment
ont été poussées vers le référentiel d'origine, de sorte que même si vous les perdez ici, elles peuvent au moins être enregistrées ailleurs.
Puisque Git ne vérifie pas les autres branches, il peut être sûr de supprimer une branche car vous savez qu'elle est complètement fusionnée dans une autre; vous pouvez le faire avec l' -D
option comme indiqué, ou passer d'abord à cette branche et laisser Git confirmer le statut complètement fusionné pour vous.