Yes there is. How to step back during an interactive rebase:
- Get the commit hash of your current HEAD, for example with
git rev-parse HEAD - run
git rebase --edit-todo - insert a pick with that hash to the top of that file
pick <hash from step 1> - run
git reset --hard HEAD^(this is a hard reset so if you have done anything you want to keep make sure to store it somewhere e.g.git stashbefore you run the command)
Now you are still in the rebase but one commit back and you are free to continue rebasing with
git rebase --continue.
If you don’t want the undone commit to be picked straight up without edits you can add edit <HASH> instead of pick <HASH> to the todo list (step 3).
Addendum: You can remember more hashes, reset to an even earlier point and add multiple picks to redo more than one commit.
Idea from: http://arigrant.com/blog/2014/5/4/git-rebase-stepping-forward-and-back