Skip to content

Instantly share code, notes, and snippets.

@shsteimer
Created October 31, 2013 21:10
Show Gist options
  • Select an option

  • Save shsteimer/7257245 to your computer and use it in GitHub Desktop.

Select an option

Save shsteimer/7257245 to your computer and use it in GitHub Desktop.
Tip to delete tags by pattern
#delete all the remote tags with the pattern your looking for, ie. DEV-
git tag | grep <pattern> | xargs -n 1 -i% git push origin :refs/tags/%
#delete all your local tags
git tag | xargs -n 1 -i% git tag -d %
#fetch the remote tags which still remain
git fetch
@kerryj89
Copy link
Copy Markdown

kerryj89 commented Jan 7, 2021

Run the following command If you get the message delete doesn't make sense without any refs when trying to delete remote tags:

git push origin --delete $(git ls-remote --tags | grep "tag_prefix.*[^}]$" | cut -f 2)

  • git ls-remote --tags will output all remote tags.
  • grep "*tag_prefix.*[^}]$" will ignore tags with annotated dereference operator "^{}" since including them errored out.
  • cut -f 2 keeps the tag name column only

@scottmathews
Copy link
Copy Markdown

scottmathews commented May 5, 2021

I accomplished this in posh-git PowerShell on Windows with this if anyone is needing to do the same:
git tag --list 'v[0-9].[1-9].*' --no-column | % { git tag -d $_; git push origin --delete $_ }

Note that I was specifying all builds from v1.1.0 and up, deleting them locally, and from the remote.

@danielsaidi
Copy link
Copy Markdown

Thank you for all these great commands!

Regarding @kerryj89 's version, you can modify it to work with any remote:

git push upstream --delete $(git ls-remote --tags upstream | grep "tag_prefix.*[^}]$" | cut -f 2)

@leoniralves
Copy link
Copy Markdown

Thanks @kerryj89. This worked fine on macOS! ๐Ÿ‘

@githubtotusharTMA2
Copy link
Copy Markdown

You can try this. It will delete all matching tag patterns. E.g. for deleting tags starting with v1.0, use git tag -d $(git tag -l "v1.0*")

Delete remote: git push -d $(git tag -l "tag_prefix*") Delete local: git tag -d $(git tag -l "tag_prefix*")

Thank You @chinmaya-kony & @luwes.
Thank You All for the help๐Ÿ™๐Ÿป

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment