git branch -f 参数1 参数2
改变分支指向提交节点,注意,并不会改变当前HEAD指向
参数1:是要移动的分支
参数2:如果没写就是将参数1指向 HEAD 所在的节点,如果写了就是将参数1指向该参数的节点
$ git checkout -b foo
$ git commit
$ git checkout main
$ git commit
$ git checkout -b bar
$ git commit
$ git checkout main
$ git commit
# 参数2未指定,当前 HEAD 指向 main,所以会把 foo 移动到 main 所在的节点
$ git branch -f foo
# 参数2指定了 bar,所以会把 foo 移动到 bar 所在的节点
$ git branch -f foo bar
# 参数2未指定,当前 HEAD 指向 main,所以会把 main 移动到 main 所在的节点,即没有变化
$ git branch -f main
懒得做动图了,把代码复制到 learngitbranching沙箱 看看效果吧