Безопасным способом для продолжения здесь было бы просто вернуть один коммит в другую ветку, а затем перестроить его так, как вы хотите.
# from other_branch
git revert HEAD
git cherry-pick master~6^..master
git cherry-pick HEAD~8
На этом этапе ваш other_branch
должен выглядетьнапример:
other_branch: ... A -- A_R -- M1 -- M2 -- M3 -- M4 -- M5 -- M6 -- M7 -- A'
Здесь A
- это первоначальный одиночный коммит, который вы сделали в этой ветке, а A_R
- это возвратный коммит. На этом этапе, прежде чем мы выберем вишню M1
из master
, ваша ветвь выглядит так, как будто вы даже не сделали этот коммит. Затем мы выбираем 7 самых последних коммитов для master
как M1
до M7
. Наконец, мы повторно применяем ваш единственный коммит в A'
.
. Теперь вы можете регулярно передавать эту ветку в GitHub:
git push origin other_branch
Наконец, для очистки нам нужно удалить коммиты. Вы сделали до master
. Предполагая, что вы еще не нажали master
, мы можем просто сделать полный сброс:
# from master
git reset --hard HEAD~7