Mac 上的 git 图形工具 GitUp 以及移除已经 merge 到 master 的本地开发分支
Mac 上的 git 图形工具 GitUp 以及移除已经 merge 到 master 的本地开发分支
ARCHIVE 这篇写于 2019 年,距今 7 年多了。里面的版本、链接和做法可能都已经过时,看的时候留个心眼。
gitup

怎么样将本地已经合并到 master 的分支自动移除?
#!/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`
echo $check_results
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
或者
#!/bin/bash
git branch -d $(git branch -vv | grep ': gone\]' | awk '{print $1}')
还有一种方法是设置: git/hooks/post-merge
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-merge".
delete_merged_branch() {
currentBranch=`git branch | grep \* | cut -d ' ' -f2`
if [ $currentBranch -eq "master" ]
then
git branch --merged|grep -v 'master'|xargs -n1 git branch -D
fi
}
delete_merged_branch
其他
git fetch --prune
git pull --rebase --autostash
另外一个相似的:git-up(1) – fetch and rebase all locally-tracked remote branches
扩展阅读
- Mac 上的 git 图形工具 GitUp
- Using-GitUp-Map-View
- GitUp, 你不可错过的秀外慧中的git工具
- how-to-iterate-through-all-git-branches-using-bash-script
茶歇驿站
一个可以让你停下来看一看,在茶歇之余给你帮助的小站,这里的内容主要是后端技术,个人管理,团队管理,以及其他个人杂想。