首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在git中,如何撤消对未被推送的带注释标记的本地删除?

在git中,如何撤消对未被推送的带注释标记的本地删除?
EN

Stack Overflow用户
提问于 2020-12-12 00:16:51
回答 2查看 159关注 0票数 1

我无意中删除了不打算删除的本地带注释的标记。我还没有把标签的删除推到遥控器上。我想纠正这个错误。

代码语言:javascript
复制
$ git tag -n999
v1.0.0          Initial release

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

我在网上搜索了堆栈溢出,试图找到一个解决方案。尽管这一行动看似直截了当,但我还没有找到解决办法。

如何撤消本地标记删除,将标记还原到删除之前的状态?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-12 00:42:28

在回答这个问题之前,我从来没有这样做过。

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

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

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

总结如下:

使用此方法获取已删除的带注释的标记对象列表:

代码语言:javascript
复制
git fsck --unreachable | grep tag

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

使用此方法检查前面命令的结果:

代码语言:javascript
复制
git show KEY

使用此方法还原标记:

代码语言:javascript
复制
git update-ref refs/tags/NAME KEY
票数 2
EN

Stack Overflow用户

发布于 2020-12-12 00:54:51

$ git标记-d v1.0.0删除标记'v1.0.0‘(为1a2b3c4) $

它删除了本地ref refs/tags/v1.0.0。把它放回去

代码语言:javascript
复制
git tag v1.0.0 1a2b3c4

这就是为什么删除在db中提到对象id的原因。Git不会清除数据库中的对象,除非它们在两周或更长的时间内无法通过任何引用(比如git help config并搜索gc.*失效),特别是它不会从飞行操作、普通错误和反复思考中抓取东西。您可以在任何对象上挂起引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65260284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档