mirror of
https://github.com/xzeldon/dotfiles-wsl2.git
synced 2025-04-10 06:47:11 +03:00
16 lines
652 B
Fish
16 lines
652 B
Fish
function gbda -d "Delete all branches merged in current HEAD, including squashed"
|
|
git branch --merged | \
|
|
# *: current branch, +: current branch on worktree.
|
|
command grep -vE '^\*|^\+|^\s*(master|main|develop)\s*$' | \
|
|
command xargs -r -n 1 git branch -d
|
|
|
|
set -l default_branch (__git.default_branch)
|
|
git for-each-ref refs/heads/ "--format=%(refname:short)" | \
|
|
while read branch
|
|
set -l merge_base (git merge-base $default_branch $branch)
|
|
if string match -q -- '-*' (git cherry $default_branch (git commit-tree (git rev-parse $branch\^{tree}) -p $merge_base -m _))
|
|
git branch -D $branch
|
|
end
|
|
end
|
|
end
|