多人维护切时间较长的项目经常会有分支冗余的现象,但是手动删除分支这件事太不适合懒人了。
这个脚本放在跟你需要删除分支项目的根目录下就可以,初次使用可能需要加个最高权限。
不太确定是否适合window环境 可能要改date的使用。
为了避免误操作,需要通过输入来确认。
#!bin/bash
#delete branch
#only for Mac
currentTime=`date -v-180d "+%s"`
sys=`uname`
if [ $sys = "Darwin" ]
then
currentTime=`date -v-180d "+%s"`
else
commit_time=1581570945
fi
for br1 in $all_branches;
do
br1_simple_name=`echo $br1 | grep '/' | cut -d '/' -f3`
commit_ts=`git log $br1 -1 --format="%ct"`
if [[ "" != "$br1_simple_name"
&& "HEAD" != "$br1_simple_name"
&& "master" != "$br1_simple_name"
&& $commit_ts -lt $currentTime
]]; then
if [ $sys = "Darwin" ]
then
commit_time=`date -r${commit_ts} +"%Y-%m-%d %H:%M:%S"`
else
commit_time=`date -d @${commit_ts} +"%Y-%m-%d %H:%M:%S"`
fi
# fi
echo $commit_time
echo " -D begin delete branch " $br1 " --->> " $br1_simple_name;
# git checkout $br1_simple_name
read -p " -W Are you sure delete the branch ** $br1 (y/n)[n]: " answer
if [[ "$answer" = "Y" || "${answer}" = "y" ]]; then
echo " Yes! deleting branch $br1 -> $br1_simple_name";
git push origin --delete $br1_simple_name;
else
echo " Skipped!!!";
fi;
fi;
done;
echo "over"
当然最可气的是 当你写完你老板说分支全部保留的那刻