https://www.delftstack.com/zh/howto/git/git-3-head/
如果当前只有一个分支(使用rebase而非merge),则HEAD^n和HEAD~n没有任何区别。
HEAD、HEADn
HEAD~n是沿当前分支往前n个提交,HEAD~1为前一个提交,可以省略为HEAD~
HEAD、HEADn
git checkout branch1
git merge branch2 branch3
git merge branch1 branch2 branch3 # 与上条命令一样
HEAD^n是当前节点的第n父节点,HEAD^1为当前分支的父节点,可以省略为HEAD^,为branch1上的父节点,HEAD^2为branch2的父节点,HEAD^3为branch3上的父节点,当前分支父节点总是HEAD^1
HEAD^^与HEAD~2相同,与HEAD^2不同。