From a79417e91925bc370cc5d98ad3cceb406880912e Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Tue, 17 Jul 2018 17:32:49 -0400 Subject: [PATCH] Add git-sweep (stolen from Derek Prior) --- bin/git-sweep | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 bin/git-sweep diff --git a/bin/git-sweep b/bin/git-sweep new file mode 100755 index 0000000..da0748e --- /dev/null +++ b/bin/git-sweep @@ -0,0 +1,30 @@ +#!/bin/bash + +git checkout master +git fetch +git remote prune origin +git branch --merged master | grep -v 'master$' | xargs git branch -d + +REMOVABLE=$(git branch -r --merged master \ + | sed 's/ *origin\///' \ + | grep -v 'master$' \ + | grep -v 'production$' \ + | grep -v 'staging$' \ + | grep -v '^release' \ + | grep -v 'next$' +) + +if [[ -z "$REMOVABLE" ]]; then + exit 0 +fi + +echo "The following remote branches are fully merged and will be removed:" +for branch in $REMOVABLE; do + echo "$branch" +done + +read -p "Continue (y/n)? " -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + echo "$REMOVABLE" | xargs git push origin --delete +fi