如何删除已经推送的 git 标签? 删除所有 git 远程(原始)标签并删除所有 git 本地标签。
git tag -d $(git tag -l)
git fetch
# Note: pushing once should be faster than multiple times
git push origin --delete $(git tag -l)
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(例如:https://github.com/ElectricRCAircraftGuy/sublime_gcode/tags)查看所有远程标签。
我的显示标签
1.0.0
和1.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/