Hi, I’ve got myself stuck on an issue, I’ve started a big rebase (I know that was already a bad idea to begin with, but, just in case, the information I’m looking for could always come in handy in other occasions), I reordered a few commits and squashed some, while in the process I resolved a few conflicts, then after I resolved one of them and got to the next conflict I realised that I shouldn’t have put a certain commit there, is there a way to rewind the process to the previous step while staying in the rebase? That way I could move the commit to where it should be and continue.
I know you can edit the todo (git --edit-todo), but that only works for the next commits, I also can’t just reset back by the number of commits I want, e.g. git reset --hard HEAD~4, because for the rebase those commits remain as done and doing git rebase --continue only brings me to where I am already, the next conflict to resolve.
So I wonder, is there a way to move out commits of the done list back into todo? Also for example if I trashed an unmerged file completely while messing around, so I can get it back to its initial state, this would be extremely useful

  • joachim@drupal.community
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    @QuazarOmega I don’t know for sure, sorry. Like someone said on that link, the reflog should have a record, but you’ll need to either abort the rebase and then pick out the right commit, or forcibly kill git’s tracking of the rebase operation. When I know a rebase is going to be long and complicated, I’ll break it down into multiple rebases.