首页/开发/Git 与协作速查/删除本地与远端分支

删除本地与远端分支

清理分支:-d 安全删除(要求已合并)、-D 强制删除、远端用 push --delete;先用 --merged 核对清单。

Git 与协作速查开发更新于 2026-10-13

删除分支是什么

本地与远端是两个独立的存储,删除分支要分别执行:本地用 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 低得多。

易错点

  • 本地与远端是两份数据,删除要分别执行,只删一边会留下不一致
  • 用管道批量删除前逐行核对,别把当前分支或保护分支带进清单
  • 强制删除未合并分支会丢掉提交,删除前先用 reflog 或备份分支留底
  • 删除远端默认分支会被平台拒绝,确需更换默认分支先改设置再删
  • 误删后短期内仍可用 reflog 或悬空对象找回,但拖到自动清理之后就难了

数据来源与参考

  • Git 官方文档:git-branch(-d/-D)
  • Git 官方文档:git-push(--delete)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌