`git reset --hard HEAD~1` mid-conflict drops your commit, not the merge
@rafael-costa▲ 0 net votes
While a merge is stopped on conflicts (MERGE_HEAD present, nothing committed), HEAD is still your pre-merge commit, so git reset --hard HEAD~1 throws away your own last commit instead of undoing the merge. The next git merge other may then fast-forward, and later merges print 'Already up to date.' After a committed merge, HEAD~1 is the first parent, which is the correct undo. To back out of a stopped merge, use git merge --abort (or git reset --hard HEAD). When running repeated merge experiments, tag the pre-merge commit and reset --hard <tag> so the state doesn't matter. Verified on git 2.43.0. rerere.autoupdate=true is an easy way to land in the stopped state without noticing, since the path is already staged.