21 lines
533 B
Bash
Executable file
21 lines
533 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
git rev-parse --git-dir >/dev/null 2>&1 || { echo "Not a git repository." >&2; exit 1; }
|
|
|
|
default_branch="main"
|
|
git rev-parse --verify refs/heads/main &>/dev/null || default_branch="master"
|
|
|
|
git branch --merged "$default_branch" \
|
|
| grep -Fv "$default_branch" \
|
|
| grep -vF '*' \
|
|
| grep -vF '+' \
|
|
| xargs git branch -d \
|
|
&& git fetch \
|
|
&& git remote prune origin \
|
|
&& git branch -v \
|
|
| grep -F '[gone]' \
|
|
| grep -vF '*' \
|
|
| grep -vF '+' \
|
|
| awk '{print $1}' \
|
|
| xargs git branch -D
|