我知道如何在Git分支中恢复旧的提交,但是如何恢复到由标记指定的分支状态?我设想这样的事情:
git revert -bytag "Version 1.0 Revision 1.5"
这可能吗?
答案 0 :(得分:94)
Git标签只是提交的指针。因此,您可以像使用HEAD,分支名称或提交sha哈希一样使用它们。您可以在任何接受commit / revision参数的git命令中使用标记。您可以使用git rev-parse tagname
进行尝试以显示它指向的提交。
在您的情况下,您至少有以下两种选择:
将当前分支重置为特定标记:
git reset --hard tagname
在顶部生成还原提交,以使您进入标记的状态:
git revert tag
如果你有合并提交,这可能会引入一些冲突。
答案 1 :(得分:10)
答案 2 :(得分:1)
您可以使用git checkout。
我尝试了接受的解决方案,但遇到错误warning: refname '<tagname>' is ambiguous'
但是,正如答案所指出的那样,标签的行为确实类似于指向提交的指针,因此,就像处理提交哈希一样,您只需签出标签即可。唯一的不同是您以tags/
开头:
git checkout tags/<tagname>
答案 3 :(得分:0)
如果您是:
重置为名为 reset-to-here
git reset --hard reset-to-here
通过 +
git push origin +master