Как правильно организовать именование, чтобы не нарушать структуру Git и не получать такие ошибки?
feature|bug|hotfix/<ID>. Каждая подзадача — всё равно задача и у неё есть свой идентификатор. У вас есть менеджер задач — вот там и отражается вся иерархия задач. Хранить иерархию задач в именовании веток нет никакого смысла — это просто бессмысленная работа. Если очень сильно хочется связывать в истории коммитов иерархию задач — просто дополняйте в комментариях её. Или ещё проще: если у вас менеджер задач внешний — просто добавьте скрипт в таск-менеджер, который при добавлении подзадачи будет в PR основной задачи добавлять ссылку на связанную подзадачу. git branch -m feature feature/TASK-123-main — история не теряется, это просто переименование. Дальше не заводи «пустых» веток без суффикса: сразу feature/TASK-123-sub1, feature/TASK-123-sub2 на одном уровне — тогда конфликтов не будет вообще.