How to remove all git origin and local tags?
For windows using command prompt:
Deleting local tags:
for /f "tokens=* delims=" %a in ('git tag -l') do git tag -d %a
Deleting remote tags:
for /f "tokens=* delims=" %a in ('git tag -l') do git push --delete origin %a
The main answer didn't work for me.
This failed:
git push origin --delete $(git tag -l)
Error:
fatal: --delete doesn't make sense without any refs
That's because I had NO local tags!
git tag -l
showed nothing, even after running git fetch
to supposedly fetch all remote tags!
BUT, the following worked!:
Under certain, rare circumstances, where you have remote tags on GitHub but no local tags, for instance, you may need to manually specify the tags to delete.
Go to https://github.com/YOUR_USERNAME/YOUR_REPO_NAME/tags (ex: https://github.com/ElectricRCAircraftGuy/sublime_gcode/tags) to view all remote tags.
Mine showed tags 1.0.0
and 1.0.1
. Delete them manually with:
To delete remote tags manually:
# 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
To delete local tags manually:
# 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
Source where I learned all of this: https://devconnected.com/how-to-delete-local-and-remote-tags-on-git/
- Delete All local tags. (Optional Recommended)
git tag -d $(git tag -l)
- Fetch remote All tags. (Optional Recommended)
git fetch
- Delete All remote tags.
# Note: pushing once should be faster than multiple times git push origin --delete $(git tag -l)
- Delete All local tags.
git tag -d $(git tag -l)