Sie können das Reflog verwenden , um die erste Aktion zu finden, bevor die Rebase gestartet wurde, und dann --hard zurück zu ihr zurücksetzen. z.B
$ git reflog
b710729 HEAD@{0}: rebase: some commit
5ad7c1c HEAD@{1}: rebase: another commit
deafcbf HEAD@{2}: checkout: moving from master to my-branch
...
$ git reset HEAD@{2} --hard
Jetzt sollten Sie zurück sein, bevor die Rebase gestartet wurde.
Um den richtigen Ort zum Zurücksetzen zu finden, wählen Sie einfach den Eintrag aus, der am nächsten oben liegt und nicht mit "rebase" beginnt.
Alternativer Ansatz
Wenn die Rebase das einzige ist, was Sie in der Verzweigung getan haben, dh Sie haben keine ungezwungenen Commits / Änderungen - dann können Sie die lokale Verzweigung einfach mit löschen git branch -Dund sie dann erneut auschecken :
$ git checkout my-branch
$ git rebase master
// not happy with result
$ git checkout master
$ git branch -D my-branch
$ git checkout my-branch
Oder für den gleichen Effekt können Sie --hard auf den Ursprungszweig zurücksetzen:
$ git reset --hard origin/my-branch
Wenn Sie dies getan haben, während Sie andere nicht gedrückte Commits hatten, haben Sie diese verloren. Verwenden Sie in diesem Fall einfach den obigen Reflog-Ansatz, um zu dem Reflog-Eintrag zurückzukehren, in dem Sie die Festschreibung (en) vorgenommen haben.