删除分支是什么
本地与远端是两个独立的存储,删除分支要分别执行:本地用 git branch -d(已合并才允许)或 -D(强制),远端用 git push origin --delete。安全删除会在分支未合并时拒绝,这层保护对避免误删未合入的工作很有价值。删除前建议先用 --merged 列出已合并清单,确认清单里没有当前分支或需要保留的分支,再批量处理。
基本信息
| -d | 已合并才允许删除 |
|---|---|
| -D | 强制删除,未合并也会执行 |
| 远端 | git push origin --delete <分支> |
| 核对 | git branch --merged 列出已合并分支 |
| 平台 | 任意 Git 客户端与托管平台 |
典型使用场景
- 功能合入主干后清理本地分支
- 远端分支被合并平台自动删除后同步本地
- 批量清理长期不用且已合并的分支
- 误开的分支需要撤掉,改用 -D 强制删除
- 维护发布线时清理过期的临时分支
- 排查分支列表噪音,先删已合并项再逐个确认剩余
常用示例
常用示例
git branch --merged | grep -v '\*' # 列出已合并分支,排除当前
git branch -d feature/done # 安全删除
git branch -D feature/abandoned # 强制删除
git push origin --delete feature/done # 删除远端分支
git fetch --prune # 清理失效的远端跟踪引用本地与远端对照
| 位置 | 命令 |
|---|---|
| 本地安全删 | git branch -d <分支> |
| 本地强制删 | git branch -D <分支> |
| 远端删 | git push origin --delete <分支> |
定期清理已合并分支能减少列表噪音,也降低推错分支的概率。
删除远端分支不会自动清理本地的远端跟踪引用,通常再执行一次抓取并带清理,视图才会同步。
清理分支的推荐顺序
- 先 git branch --merged 列出可安全删除的分支
- 逐行确认清单里没有当前分支与需保留分支
- 本地逐个 -d 删除,失败时再单独判断是否强制
- 远端用 push --delete 删除后补一次带清理的抓取
删除前把分支最后一次提交号记下来,或者先按它建一个临时标签,误删后仍能快速找回,成本比事后翻 reflog 低得多。