如何删除所有 git 起源和本地标记?

如何删除已被推送的 git 标记? 删除所有 git 远程(原始)标记和删除所有 git 本地标记。

69536 次浏览
  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)
    

对于使用命令提示符的窗口:

删除本地标签:

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/