即使我删除了它们,Git标签也会显示

Ari*_*eld 6 git

我通过运行删除了一些标签:

  1. git tag -d TAGNAME
  2. git push origin :refs/tags/TAGNAME

之后我要求所有团队成员运行:

  1. git tag -d $(git tag) - 删除所有本地标签
  2. git fetch --tags - 从远程检索当前标签.

问题是,我偶尔会看到旧标签出现.我怀疑有人仍然有一些旧标签,并且在我删除之前没有删除或删除.

有没有办法完全删除标签?

例如 - 要进行删除旧标记的提交,因此在用户能够推送之前,他们必须提取该提交,因此它将更改其标记.那可能吗?

eck*_*kes 6

删除远程分支时,必须git remote prune origin从工作副本中完全删除这些已删除的分支.

由于标签与分支非常相似,我认为你也需要在这里修剪.

git fetch也知道--prune参数,所以要么

git remote prune origin
Run Code Online (Sandbox Code Playgroud)

要么

git fetch --prune
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.

这是一个额外的安全措施:fetch仅更新已知的远程分支并引入新的分支,但除非--prune被请求,否则永远不会删除它们.


小智 6

@eckes 的解决方案对我不起作用;约瑟夫·K·施特劳斯 (Joseph K Strauss) 的回答确实有效:

/sf/answers/2154765791/

git fetch origin refs/tags/*:refs/tags/* --prune
Run Code Online (Sandbox Code Playgroud)