content/discuss/2019-04-10-remove-local-branch-in-merged-master.md
来源:『Go 夜读』微信群
#!/bin/bash
function git_branch_cleanup() {
for branch in `git branch --format='%(refname:short)'|grep -v '\*\|master'` ; do
git checkout $branch
check_results=`git fetch origin master && git rebase origin/master`
result=$(echo $check_results | grep "up to date.")
if [ "$result" == "" ];then
echo "不包含 up to date. $check_results !\n"
fi
done
git checkout master
git branch --merged | grep -v '\*\|master' | xargs -n 1 git branch -d
}
git_branch_cleanup
你可以将以上代码创建到 /usr/local/bin/gcup,这样你就可以在项目中使用 gcup 命令了。
注意:gcup 需要权限:
chmod +x gcup如果之前没有清理无用分支,可能会有大量冲突需要处理。
其他办法: 我们也可以遍历本地所有分支,然后排除一些白名单的分支,然后再把其他的全部删掉。
git branch -d xxx能删掉的就都删掉了,如果你确定 xxx 分支没有用了,你也可以强制删除git branch -D xxx
更简洁的代码:git branch -d $(git branch -vv | grep ': gone\]' | awk '{print $1}')