mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
When deleting a branch check if git has config.
Don't assume that the remote is always origin and that the remote branch name is the same as the local one
This commit is contained in:
parent
1b2b61169a
commit
bfd38ca891
|
|
@ -3,18 +3,14 @@
|
|||
# Assert there is at least one branch provided
|
||||
test -z $1 && echo "branch required." 1>&2 && exit 1
|
||||
|
||||
# Concatenate all branch references
|
||||
local_branches=""
|
||||
origin_branches=""
|
||||
origin_refs=""
|
||||
for branch in "$@"
|
||||
do
|
||||
local_branches=$local_branches" $branch"
|
||||
origin_branches=$origin_branches" origin/$branch"
|
||||
origin_refs=$origin_refs" :refs/heads/$branch"
|
||||
done
|
||||
remote=$(git config branch.$branch.remote)
|
||||
test -z $remote && remote="origin"
|
||||
ref=$(git config branch.$branch.merge)
|
||||
test -z $ref && ref="refs/heads/$branch"
|
||||
|
||||
# Delete all branches
|
||||
git branch -D $local_branches
|
||||
git branch -d -r $origin_branches
|
||||
git push origin $origin_refs
|
||||
git branch -D $branch
|
||||
git branch -d -r $remote/$branch
|
||||
git push $remote :$ref
|
||||
done
|
||||
|
|
|
|||
Loading…
Reference in a new issue