Sometimes you find yourself in a really big mess:

  • you made some modification that you want to disregard, but
  • you don’t want to delete everything you’ve done.
  • you messed up your master. Although you shouldn’t.

That’s why a git reset is not the way to go, however there is a really nice way to do it:

  • you choose the commit where you want to restart
  • you apply the merge with ‘theirs’ strategy, which actually copy the info from branch B (theirs) to branch A

This is the magic trick:

[code]git checkout -b fixing some_commit
git checkout master
git merge -s recursive –strategy-option theirs B[/code]

  1. Create a fixing branch from the right commit
  2. go back to master
  3. scrap everything you did and copy from the good old branch.

H/T darkhax