keep move

删除远程git仓库中老的分支

字数统计: 194阅读时长: 1 min
2019/07/12 Share

随着工程的发展,推送到remote的分支会越来越多,有一些merge后忘记删除的、一些只是临时存放代码,之后忘记删除的。
这些分支的存在会对remote分支查找带来一些困难。
为此写一个脚本删除当前工程目录对应的remote仓库中,指定时间点之后没有提交记录的分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash

# 删除这个时间之后没有提交记录的分支
lastTime="2019-1-1"

git branch -r | while read line
do
# 保护release分支
if [[ "$line" =~ "release" ]]; then
continue
fi
haveCommitSinceLastTime=$(git log $line --since=$lastTime)
if [[ "$haveCommitSinceLastTime" == "" ]];then
echo "[delete branch]" $line
git push origin --delete ${line#origin/}
fi
done

git branch会列出

1
origin/HEAD -> origin/master

这一分支会解析出错,不影响其他分支处理

CATALOG