Если понимать, что ветка это не какая-то коробочка с коммитами, а указатель на некоторое состояние проекта на дереве, то мы просто устанавливаем указатели веток в нужные места. Никакие коммиты перемещать не надо, они то как раз уже на своих местах.
git branch feature/menu # создать ветку, новые коммиты уже окажутся в ней
git reset HEAD~5 # откатить мастер на 5 шагов назад