From c136afba673e5d53c7c4c7be2407245158f2523b Mon Sep 17 00:00:00 2001 From: TJ Holowaychuk Date: Tue, 18 Jun 2013 13:44:55 -0700 Subject: [PATCH] git-squash: add --me flag to flatten the current branch --- bin/git-squash | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/bin/git-squash b/bin/git-squash index 98ab229..ec53183 100755 --- a/bin/git-squash +++ b/bin/git-squash @@ -3,7 +3,33 @@ src=$1 msg=$2 -test -z $src && echo "source branch required." && exit 1 +test -z $src && echo "source branch required, or use --me." && exit 1 + +# squash current branch +# TODO: do this in a less hacky way +# TODO: less sketchy arguments + +if [[ $1 == "--me" ]]; then + msg=$3 + branch=`git rev-parse --abbrev-ref HEAD` + + # merge against target branch or master + git checkout ${2-master} + + git checkout -B squash-tmp + git squash $branch + git branch -D $branch + git checkout -B $branch + git branch -D squash-tmp + + if test -n "$msg"; then + git commit -a -m "$msg" + fi + + exit +fi + +# squash $src git merge --squash $src