如何清理远程仓库分支
为什么要清理远程分支
随着每天的代码提交、合并,仓库中会有越来越多的冗余分支。这么多死分支不仅会掩盖真正在使用的分支,而且也为管理带来不便。
关于分支的常用操作命令
Git命令 | 作用 |
---|---|
git branch |
查看本地所有分支 |
git branch -r |
查看远程仓库所有分支 |
git branch -a |
查看本地和远程仓库所有分支 |
git checkout -b + 新分支名 |
新建本地分支并切换 |
git branch --no-merged + 分支名 |
查看没有被合入到指定分支的分支 |
git branch --merged + 分支名 |
查看已经合到指定分支的分支 |
git branch -d |
|
git fetch |
同步远程仓库的分支到本地 |
git fetch -p |
删掉远程仓库没有的本地分支 |
git push origin --delete + 分支名 |
删除远程仓库分支 |
注:
git branch -D
用来删除没有被合入主分支的分支。 建议每次同步远程分支都使用
git fetch -p
命令。
查看哪些远程分支该被清理
for branch in `git branch -r --merged origin/DEV_Message_Editor | grep -v HEAD`; do echo $branch `git show --format="%ci %cr %an" $branch | head -n 1`;done
这行命令首先是过滤出所有已合入 DEV_Message_Editor
的远程分支(git branch -r --merged origin/DEV_Message_Editor | grep -v HEAD
),然后遍历每个分支,展示(git show
)其最后一次提交的绝对时间(%ci
)、相对时间(%cr
)和作者(%an
)信息。结果如下:
origin/AUTO_Add_Default_and_Fault_states_RAIDPOD25-529 2020-06-15 16:36:02 +0800 5 weeks ago Eurus Yanan Liu
origin/AUTO_Add_Overflow_state_RAIDPOD25-529 2020-06-12 17:28:51 +0800 6 weeks ago Jim Yuanjun Liu
origin/AUTO_Another_button_position_will_changed_when_long_press_one_button 2020-06-15 17:23:31 +0800 5 weeks ago czhang28
origin/AUTO_Focused_state_