我无意中删除了不打算删除的本地带注释的标记。我还没有把标签的删除推到遥控器上。我想纠正这个错误。
$ git tag -n999
v1.0.0 Initial release
$ git tag -d v1.0.0
Deleted tag 'v1.0.0' (was 1a2b3c4)我在网上搜索了堆栈溢出,试图找到一个解决方案。尽管这一行动看似直截了当,但我还没有找到解决办法。
如何撤消本地标记删除,将标记还原到删除之前的状态?
发布于 2020-12-12 00:42:28
在回答这个问题之前,我从来没有这样做过。
但在谷歌你的问题后,我发现了这篇文章:
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发布于 2020-12-12 00:54:51
$ git标记-d v1.0.0删除标记'v1.0.0‘(为1a2b3c4) $
它删除了本地ref refs/tags/v1.0.0。把它放回去
git tag v1.0.0 1a2b3c4这就是为什么删除在db中提到对象id的原因。Git不会清除数据库中的对象,除非它们在两周或更长的时间内无法通过任何引用(比如git help config并搜索gc.*失效),特别是它不会从飞行操作、普通错误和反复思考中抓取东西。您可以在任何对象上挂起引用。
https://stackoverflow.com/questions/65260284
复制相似问题