我通过运行
删除了一些标签git tag -d TAGNAME
git push origin :refs/tags/TAGNAME
之后我要求所有团队成员运行:
git tag -d $(git tag)
- 删除所有本地代码git fetch --tags
- 从远程检索当前标记。问题是,我偶尔会看到旧标签出现。 我怀疑有人仍然有一些旧标签,并且在我删除之前没有删除或删除它们。
有没有办法彻底删除标签?
例如 - 要进行删除旧标记的提交,因此在用户能够推送之前,他们必须提取该提交,因此它将更改其标记。这可能吗?
答案 0 :(得分:6)
删除远程分支时,必须git remote prune origin
才能从工作副本中完全删除这些已删除的分支。
由于标签与分支非常相似,我认为你也需要在这里修剪。
git fetch
也知道--prune
参数,因此
git remote prune origin
或
git fetch --prune
应该做的伎俩。
这是一项额外的安全措施:fetch
仅更新已知的远程分支并引入新分支,但除非请求--prune
,否则永远不会删除它们。
答案 1 :(得分:0)
@eckes 的解决方案对我不起作用; Joseph K Strauss 的这个回答是有效的:
https://stackoverflow.com/a/30782368/15382340
git fetch origin refs/tags/*:refs/tags/* --prune