O Git está avisando que você pode perder o histórico excluindo este ramo. Mesmo que na verdade não exclua nenhuma confirmação imediatamente, algumas ou todas as confirmações na ramificação se tornarão inacessíveis se elas também não fizerem parte de outra ramificação.
Para que a ramificação experimentseja "totalmente mesclada" em outra ramificação, seu commit de dica deve ser um ancestral da dica do outro branch, fazendo com que o commit seja feito em experimentum subconjunto do outro branch. Isso torna seguro excluir experiment, pois todas as confirmações permanecerão parte do histórico do repositório por meio de outra ramificação. Ele deve ser mesclado "totalmente", porque já pode ter sido mesclado várias vezes, mas agora foram adicionados commit desde a última mesclagem que não está contida no outro ramo.
O Git não verifica todos os outros ramos do repositório; só dois:
- O ramo atual (HEAD)
- O ramo upstream, se houver um
O "ramo upstream" para experiment, como no seu caso, é provavelmente origin/experiment. Se experimentfor totalmente mesclado no ramo atual, o Git o excluirá sem reclamação. Se não estiver, mas estiver totalmente mesclado em sua ramificação upstream, o Git continuará com um aviso parecido com:
warning: deleting branch 'experiment' that has been merged
to 'refs/remotes/origin/experiment', but not yet merged to
HEAD.
Deleted branch experiment (was xxxxxxxx).
Onde xxxxxxxxindica um ID de confirmação. Ser totalmente mesclado no upstream indica que as confirmações experimentforam enviadas para o repositório de origem, para que, mesmo que você as perca aqui, elas possam pelo menos ser salvas em outro lugar.
Como o Git não verifica outros ramos, pode ser seguro excluir um ramo porque você sabe que ele está totalmente mesclado em outro; você pode fazer isso com a -Dopção indicada, ou alternar para esse ramo primeiro e deixar o Git confirmar o status totalmente mesclado para você.