/ git-remove-merged-branches
git-remove-merged-branches
1 #!/bin/bash 2 3 REMOTE="${1:-origin}" 4 BRANCH="${2:-master}" 5 if [[ "$3" = "-n" ]]; then 6 DRY_RUN=1 7 else 8 DRY_RUN=0 9 fi 10 11 MERGED_BRANCHES=$(git branch -r --merged | 12 grep "\b${REMOTE}/" | 13 grep -vE "HEAD|master|${BRANCH}" | 14 xargs -L1 | 15 sed -e "s/${REMOTE}\///") 16 if [[ -n "$MERGED_BRANCHES" ]]; then 17 echo "Removing merged branches:" 18 echo "$MERGED_BRANCHES" 19 if [[ $DRY_RUN -eq 0 ]]; then 20 echo "$MERGED_BRANCHES" | xargs git push "$REMOTE" --delete 21 fi 22 else 23 echo "No branches to remove" 24 fi