首页 > 解决方案 > 在git中,如何撤消本地删除未推送的注释标签?

问题描述

我不小心在本地删除了一个我不打算删除的带注释的标签。我还没有将标签的删除推送到遥控器。我想撤消这个错误。

$ git tag -n999
v1.0.0          Initial release

$ git tag -d v1.0.0
Deleted tag 'v1.0.0' (was 1a2b3c4)

我已经在网上和 Stack Overflow 上搜索过,试图找到解决方案。尽管这个动作看起来很简单,但我没有找到解决方案的运气。

如何撤消本地标签删除,将标签恢复到删除之前的状态?

标签: gitgit-tag

解决方案


仅供参考,在回答这个问题之前我从未这样做过。

但在谷歌搜索你的问题后,我发现了这篇文章:

https://dzone.com/articles/git-tip-restore-deleted-tag

我测试了它的建议,它对我有用。


总之:

使用它来获取已删除的带注释标签对象的列表:

git fsck --unreachable | grep tag

# if don't have grep because you're on windows, you can use this:
git fsck --unreachable | sls tag

使用它来检查上一个命令的结果:

git show KEY

使用它来恢复标签:

git update-ref refs/tags/NAME KEY

推荐阅读