Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Shell script to delete useless build tags from GitHub forks of YUI 3
#!/bin/bash
# This script will delete *all* local and remote tags from any git repo you run
# it in, unless they begin with "v". Please use it to remove the hundreds of
# build tags from your YUI 3 fork.
#
# This script will not delete branches; just tags.
set -e
REMOTE='origin'
# Verify that we have git 1.7.x.
if [ `git --version | grep "version 1\.7" | wc -l` == "0" ]; then
echo "This script requires git 1.7.x."
echo
exit 1
fi
# Verify that the remote is actually GitHub.
if [ `git remote show $REMOTE | grep github.com | wc -l` == "0" ]; then
echo "The '$REMOTE' remote doesn't appear to be GitHub. Please edit"
echo "this script and set the REMOTE variable at the top to the name of"
echo "your git remote that points to GitHub."
echo
exit 1
fi
echo "--> Cleaning up tags"
# First, delete all old local tags.
git tag -d `git tag | grep "^[^v]" | xargs`
# Now fetch all remote tags so we'll know which ones to delete.
git fetch --tags $REMOTE
tags=`git tag | grep "^[^v]" | xargs`
# Delete all old remote tags.
if [ "$tags" != "" ]; then
git push -v --delete $REMOTE $tags
fi
# Re-delete all old local tags.
git tag -d $tags
echo "--> Done"

lsmith commented Aug 8, 2011

TAGS=`git tag | grep "^[^v3]" | xargs`

will leave the version tags

Owner

rgrove commented Aug 8, 2011

Updated, thanks.

In case your tags are only local:

if [ "$tags" != "" ]; then
    git push -v --delete origin $tags
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment