diff --git a/local/bin/git-finish b/local/bin/git-finish new file mode 100755 index 0000000..9cc1115 --- /dev/null +++ b/local/bin/git-finish @@ -0,0 +1,21 @@ +#!/bin/zsh +branch=$1 +branchParts=( ${(s:/:)branch} ) +kind=$branchParts[1] +name=$branchParts[2] +echo "Finishing $kind '$name'..." >&2 + +git checkout $branch || exit $? + +merge-into() { + echo "Merging $branch into $1..." >&2 + git checkout $1 || exit $? + git merge --no-ff $branch --message "Merge $kind '$name' into $1" || exit $? +} + +[[ $kind = hotfix ]] && merge-into master +merge-into develop + +echo "Merge successful, deleting $branch..." >&2 +git push origin --delete $branch || exit $? +git branch --delete $branch