Это будет не очень красиво, но я думаю, что вы можете сделать это.
Переместите F на origin / master в качестве новой ветки master:
git checkout F
git checkout -b new_master
git rebase origin/master
Merge branch-b в вашу новую ветку:
git merge branch-b
Вишня, выберите оставшийся коммит H для вашей новой главной ветви:
git cherry-pick master
Удалите свою старую главную ветку:
git branch -D master
К сожалению, вам также придется снова выполнить слияние (надеюсь, оно не требует ручного слияния).
На самом деле я не пробовал это сделать, поэтому сначала я сделаю резервную копию репозитория,но я уверен, что ты получишь то, что хочешь.Я также предлагаю открывать gitk --all и обновлять дерево с помощью «F5» после каждой команды, чтобы вы могли видеть, что меняется.
Кто-то еще должен публиковать сообщения, если они знают о более элегантном способе сделать это..