首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Git存储库中删除所有标签

从Git存储库中删除所有标签
EN

Stack Overflow用户
提问于 2013-10-23 20:55:15
回答 14查看 82.5K关注 0票数 282

我想删除Git存储库中的所有标签。我该怎么做呢?

使用git tag -d tagname在本地删除标记tagname,并使用git push --tags更新git提供者上的标记。

我试过了:

git tag -d *

但是我看到*指的是当前目录中的文件。

$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...

考虑到我有很多标签,我想把它们全部删除。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2013-10-23 21:01:30

git tag | xargs git tag -d

只需遵循Unix philosophy,您就可以通过管道传输所有内容。

在Windows上,使用带有相同命令的git bash。

票数 505
EN

Stack Overflow用户

发布于 2015-08-12 01:12:14

要删除远程标记(在删除本地标记之前),只需执行以下操作:

git tag -l | xargs -n 1 git push --delete origin

然后删除本地副本:

git tag | xargs git tag -d
票数 265
EN

Stack Overflow用户

发布于 2015-12-21 20:36:37

在一个命令中推送删除所有标签可能更有效。尤其是如果你有几百个。

在合适的非windows shell中,删除所有远程标记:

git tag | xargs -L 1 | xargs git push origin --delete

然后删除所有本地标签:

git tag | xargs -L 1 | xargs git tag --delete

只要您的标记名中没有',这应该是可以的。为此,下面的命令应该是OK的。

git tag | xargs -I{} echo '"{}"' | tr \\n \\0 | xargs --null git push origin --delete
git tag | xargs -I{} echo '"{}"' | tr \\n \\0 | xargs --null git tag --delete

可能还有其他方法可以获取一列行,将它们括在引号中,使它们成为一行,然后将该行传递给命令。考虑到这是最终的猫皮肤环境和所有。

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

https://stackoverflow.com/questions/19542301

复制
相关文章

相似问题

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