В комментариях упоминается, что ветвь - это просто заметка, закладка.
Если вы немного покопаетесь в каталоге .git
(который я рекомендую вам для образовательных целей), вы будетесм. каталог refs/heads
.Он будет содержать один файл для каждой ветви, который у вас есть локально (удаленные ветви хранятся в refs/remotes
).
Если вы откроете один из этих файлов, вы увидите, что он содержит одну строку: хешпоследний коммит указывает на ветвь.
Удаление ветки эффективно просто удаляет соответствующий файл в refs/heads
.Вот почему удаление ветви не влияет на коммиты "ветви" (коммиты на самом деле не принадлежат ветви).
В результате вы также можете (опять же, только в образовательных целях, яКонечно, не рекомендуется делать это в ежедневном рабочем процессе) создайте ветку foo
, создав файл refs/heads/foo
с содержимым полного хеша коммита, на который вы хотите указать ветку.
В качестве второго результата, как только ветвь объединяется, нет смысла держать ее «на всякий случай».