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/


  1. Delete All local tags. (Optional Recommended)
    git tag -d $(git tag -l)
    
  2. Fetch remote All tags. (Optional Recommended)
    git fetch
    
  3. Delete All remote tags.
    # Note: pushing once should be faster than multiple times
    git push origin --delete $(git tag -l) 
    
  4. Delete All local tags.
    git tag -d $(git tag -l)