要移动已签出分支的分支指针,可以使用git reset --hard命令。但是如何移动未签出分支的分支指针以指向不同的提交(保留所有其他内容,如跟踪的远程分支)?
git reset --hard
您可以为任意参考做到这一点。这是移动分支指针的方法:
git update-ref -m "reset: Reset <branch> to <new commit>" refs/heads/<branch> <commit>
where-m向分支的 reflog 添加一条消息。
-m
一般形式是
git update-ref -m "reset: Reset <branch> to <new commit>" <ref> <commit>
如果你愿意,你可以挑选关于 reflog 消息的细节——我相信那个branch -f和那个不同reset --hard,这不完全是其中任何一个。
branch -f
reset --hard