Но если я создам новую ветку не запушенный коммит пропадет.
git branch feature_branch # создать новую ветку для текущего коммита
git reset origin/master # удалить коммит, он останется только в новой ветке
одной командой сказать, что бы запушил коммит не в мастер а в другую ветку, не переходя на нее
git push origin HEAD:feature_branch