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

时间:2015-07-30 13:42:08

标签: git

我通过运行

删除了一些标签
  1. git tag -d TAGNAME
  2. git push origin :refs/tags/TAGNAME
  3. 之后我要求所有团队成员运行:

    1. git tag -d $(git tag) - 删除所有本地代码
    2. git fetch --tags - 从远程检索当前标记。
    3. 问题是,我偶尔会看到旧标签出现。 我怀疑有人仍然有一些旧标签,并且在我删除之前没有删除或删除它们。

      有没有办法彻底删除标签?

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

2 个答案:

答案 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