When I specify an ancestor commit object in Git, I\'m confused between HEAD^ and HEAD~.
HEAD^
HEAD~
Both have a \"numbered\" version like HEAD^3<
HEAD^3<
HEAD^^^ is the same as HEAD~3, selecting the third commit before HEAD
HEAD^2 specifies the second head in a merge commit