В git теги и ветви являются ссылками, которые позволяют вам получить элемент в ориентированном графе. Единственные доступные пути к корням графа - это те, которые заканчиваются ветвями или тегами. Без ветки или тэга (или ссылки, которая ни того, ни другого, как отдельная HEAD) у вас ничего нет.
Тот факт, что есть даже ветвь A, в основном не имеет значения с точки зрения ветви B: это имеет значение только для отслеживания слияний, и ни в коем случае отсутствие ветви А не потеряло бы ничего, кроме такой информации. Поскольку ветвь А будет объединена и закрыта (удалена), любая необходимая информация об отслеживании уже применяется к master
в момент объединения. Если вы объедините B, это произойдет позже, и B уже переносит путь от себя через фрагмент ветви A к корням графа (их может быть много!).
Если ветвь A был удален без слияния, ветвь B выглядела бы как прямая линия к мастеру: она включала в себя коммиты из ветки A на пути от B к последнему общему коммиту предка на главной ветке.
Что Дело в том, что у вас есть некоторый дескриптор для ветви B, и вы делаете: сама ветвь является дескриптором. Вы также можете иметь тег (теги и ветви идентичны во всех отношениях, кроме их интерпретации во время слияний и разрешения конфликтов). Или отдельная ГОЛОВА. Или живите на краю и сохраняйте единственную действующую ссылку в корзине (то есть головку без ссылок, которая хранится до истечения срока ее действия и сбора мусора).