如何删除所有 git 来源和本地标签?

How to remove all git origin and local tags?

如何删除已推送的 git 标签? 删除所有 git 个远程(源)标签并删除所有 git 个本地标签。

  1. 删除所有本地标签。 (可选推荐)
    git tag -d $(git tag -l)
    
  2. 获取远程所有标签。 (可选推荐)
    git fetch
    
  3. 删除所有远程标签。
    # Note: pushing once should be faster than multiple times
    git push origin --delete $(git tag -l) 
    
  4. 删除所有本地标签。
    git tag -d $(git tag -l)
    

对于 windows 使用命令提示符:

正在删除本地标签:

for /f "tokens=* delims=" %a in ('git tag -l') do git tag -d %a

正在删除远程标签:

for /f "tokens=* delims=" %a in ('git tag -l') do git push --delete origin %a

对我不起作用。

这失败了:

git push origin --delete $(git tag -l)

错误:

fatal: --delete doesn't make sense without any refs

那是因为我没有本地标签!

git tag -l 显示 什么都没有 ,即使在 运行 git fetch 应该获取所有远程标签之后也是如此!

但是,以下 有效!:

在某些极少数情况下,您在 GitHub 上有远程标签但没有本地标签,例如,您可能需要 手动 指定要删除的标签.

前往 https://github.com/YOUR_USERNAME/YOUR_REPO_NAME/tags (ex: https://github.com/ElectricRCAircraftGuy/sublime_gcode/tags) 查看所有远程标签。

我的显示标签 1.0.01.0.1。手动删除它们:

手动删除远程标签

# General format to delete a **remote** tag on remote named "origin"
git push --delete origin <tag_name>

# My case exactly
git push --delete origin 1.0.0
git push --delete origin 1.0.1

手动删除本地标签

# list all tags
git tag
# OR (same thing): 
git tag -l

# delete a local tag
git tag -d <tag_name>
# Example: delete local tag named `1.0.0`
git tag -d 1.0.0

我学习所有这些的来源:https://devconnected.com/how-to-delete-local-and-remote-tags-on-git/