Recuperando do master sendo reescrito

Se o seu master local estava atualizado quanto à origem ANTES do master ter sido reescrito:

git fetch origin

git checkout feature
-x
git rebase master
--onto origin/master

or

git rebase master feature
-x --onto origin/master

Se algo estava / está errado com seu mestre local (ou já foi atualizado para origem / mestre):

git fetch

git rebase origin
/master -i

No modo interativo, remova todos os commits que já estão na origem / master (o motivo pelo qual eles aparecem são os SHAs diferentes).

Se você não remover as duplicatas, poderá obter conflitos, que depois de resolvidos git rebase --continuenão funcionam. Isso ocorre porque o commit que você está tentando adicionar não muda nada. Para contornar isso, você simplesmente git rebase --skip.