Skip to content

Instantly share code, notes, and snippets.

@mranallo
Forked from rgrove/delete-tags.sh
Created January 24, 2012 21:39
Show Gist options
  • Save mranallo/1672874 to your computer and use it in GitHub Desktop.
Save mranallo/1672874 to your computer and use it in GitHub Desktop.
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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment