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
    2
    ·
    3 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.

    • QuazarOmegaOPA
      link
      fedilink
      arrow-up
      1
      ·
      13 hours ago

      When I know a rebase is going to be long and complicated, I’ll break it down into multiple rebases

      Yeah I think that’s the bigger takeaway from the discussion here, I’ll keep that to heart.

      Like someone said on that link

      Sorry, what comment are you referring to?