Поскольку я хотел выпустить подпапку своего репозитория в отдельную ветку, я решил использовать git subtree split . Хранилище относительно велико, и разбиение git на поддерево занимает много времени, поэтому я использую флаг - rejoin . Чтобы избежать загроможденной истории, возникшей в результате повторного присоединения, я ввел промежуточную ветвь (названную upm-release), из которой затем делаю разделение.
Итак, я выполняю следующие команды:
git checkout upm-release
git merge master
git subtree split --rejoin --prefix=sub --branch upm
Это идет ровно 3 раза и приводит к следующей истории:

Но четвертый сплит представляет новую линию истории, возникшую из ниоткуда:

Кто-нибудь знает, как я могу предотвратить, что поддерево git может испортить историю?