已经给出了关于为什么不以这种方式做事的各种答案/评论,但这里是你解决这个特定场景的方法:
git checkout -b tmpbranch # creates a branch called tmpbranch at HEAD
git checkout master # switch back to master branch
git merge --ff-only tmpbranch # fast-forward merge master to tmpbranch, fail if not possible
git branch -d tmpbranch # delete tmpbranch, it's not needed anymore
然后,继续前进,不要签出标签,除了这种方式:
git checkout -b somebranch refs/tags/tagname # creates a new branch starting at tag
这样,您将不会处于分离的 HEAD 状态,并且任何新的提交都将从相关标签开始添加,这似乎是您想要的……提交后,您可以git tag newtag
在正确的位置创建额外的标签.