From git reset manpage:
--hard Matches the working tree and index to that of the tree being switched to. Any changes to tracked files in the working tree since <commit> are lost. --merge Resets the index to match the tree recorded by the named commit, and updates the files that are different between the named commit and the current commit in the working tree.
The git reset --merge
is meant to be a safer version of git reset --hard
, when your changes and somebody else changes are mixed together, trying to carry our changes around.