-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcleanBranches
executable file
·31 lines (28 loc) · 1.01 KB
/
cleanBranches
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
if [ "$#" -ne 1 ]; then
fileName="${0##*/}"
echo "Illegal number of parameters $#"
echo "Recieved args:"
echo " $@"
echo "Usage ${fileName} \${remote to check for merged changes}"
echo ""
echo "${fileName} origin/master"
echo ""
echo "Would delete all local branches that have been merged to origin/master"
exit 1
fi
num="$[$(git branch --all --merged ${1} | grep -v remotes/ | grep -v master | grep -v develop | grep -v staging | grep -v \* |wc -l)]"
[[ $(echo ${num}) == 0 ]] && echo No Branches need cleaning. && exit 0
git branch --all --merged ${1} | grep -v remotes/ | grep -v master | grep -v develop | grep -v staging | grep -v \*
echo Delete all of these branches? \(Y/N\)
read answer
if [ "${answer}" == "Y" ]
then
localBranches=$(git branch --all --merged ${1} | grep -v remotes/ | grep -v master | grep -v develop | grep -v staging | grep -v \*)
for i in ${localBranches}
do
git branch -d ${i}
done
else
echo No branches deleted.
fi