Git advierte que puede perder el historial al eliminar esta rama. Aunque en realidad no eliminaría ninguna confirmación de inmediato, algunas o todas las confirmaciones de la rama quedarían inalcanzables si no son parte de otra rama también.
Para que la rama experiment
se “fusione completamente” en otra rama, su confirmación de punta debe ser un antecesor de la punta de la otra rama, haciendo que las confirmaciones estén en experiment
un subconjunto de la otra rama. Esto hace que sea seguro eliminarlo experiment
, ya que todas sus confirmaciones seguirán siendo parte del historial del repositorio a través de la otra rama. Debe fusionarse "completamente", porque puede que ya se haya fusionado varias veces, pero ahora se han agregado confirmaciones desde la última fusión que no están contenidas en la otra rama.
Sin embargo, Git no verifica todas las demás ramas en el repositorio; sólo dos:
- La rama actual (HEAD)
- La rama aguas arriba, si hay una
La "rama ascendente" para experiment
, como en su caso, es probablemente origin/experiment
. Si experiment
está completamente fusionado en la rama actual, Git lo elimina sin ninguna queja. Si no es así, pero está completamente fusionado en su rama aguas arriba, entonces Git procede con una advertencia que parece:
warning: deleting branch 'experiment' that has been merged
to 'refs/remotes/origin/experiment', but not yet merged to
HEAD.
Deleted branch experiment (was xxxxxxxx).
Donde xxxxxxxx
indica un id de confirmación. Estar completamente fusionado en su flujo ascendente indica que los commits experiment
se han enviado al repositorio de origen, por lo que incluso si los pierde aquí, al menos se pueden guardar en otro lugar.
Dado que Git no verifica otras ramas, puede ser seguro eliminar una rama porque sabe que está completamente fusionada con otra; puede hacer esto con la -D
opción como se indica, o cambiar a esa rama primero y dejar que Git confirme el estado completamente fusionado por usted.