Se acontecer de você ter um commit anterior onde você acabou de confirmar feature-1
, você pode simplesmente apontar o branch master para o commit.
De acordo com this , você pode conseguir isso executando:
git checkout master
git reset --hard <hash_of_the_commit>
Se não, acho que a única maneira de conseguir isso é fazer o que você disse, ramificando e excluindo qualquer código indesejado.
Quanto à segunda pergunta, você provavelmente desenvolverá o hotfix em uma ramificação diferente e poderá aplicá-lo a qualquer outra ramificação que precisar.
git checkout master
git merge hotfix
git checkout feature-1
git merge hotfix
git checkout feature-2
git merge hotfix
Você pode ver mais sobre este aqui , que descreve exatamente o que você está pedindo.