首页/开发/Git 与协作速查/git push --delete 删除远端分支或标签
Git 基础与命令88 条

git push --delete 删除远端分支或标签

删除远端引用:git push origin --delete <名称>;等价写法为 push origin :<名称>,需要相应写权限。

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

远端引用怎么删

删除远端分支或标签用 git push <远端> --delete <名称>,等价写法是推送一个空引用 git push origin :<名称>,冒号在前表示把空值推给该引用。它删除的是远端引用,本地分支不受影响;只要本地还在,一条 push 就能恢复。

基本信息

语法git push <远端> --delete <引用名>
等价写法git push origin :<引用名>
适用对象远端分支与远端标签都可以
权限要求需对该引用的写权限,受保护引用会被规则直接拒绝
收尾git fetch --prune 清理本地已不存在的远端跟踪引用

典型使用场景

  • 功能分支合并后清理,避免远端分支列表越积越长
  • 误推的临时分支或实验分支回收
  • 删除打错版本号或指错提交的标签
  • 批量清理上一轮发布留下的候选标记
  • 权限收口时移除不再需要的协作分支,通常需要提权操作

常用示例

常用示例
git branch --merged origin/main          # 先确认分支已合并
git push origin --delete feature/old      # 删除远端功能分支
git push origin :feature/old              # 等价写法,冒号在前表示推空值
git push origin --delete v1.0.0-rc1       # 删除远端标签
git fetch --prune                         # 本地清理已消失的远端跟踪引用
git push origin feature/old               # 删除后可立即用本地分支推回恢复

报错与原因对照

现象原因处理
remote rejected: protected分支受保护规则约束调整规则或走平台审批流程
remote ref does not exist远端本无该引用,名称写错用 git ls-remote 核对名称
403 或 permission denied账号对该引用无写权限确认角色与令牌的权限范围
删除远端分支前先确认已合并或确实不再需要:平台可能连同该分支的 PR 讨论与流水线记录一起归档,恢复只能依靠本地分支或 reflog。
删除远端标签与删除平台上的 release 是两件事:GitHub 的 release 需要单独删除,否则页面仍能看到旧版本。
批量清理前先用 git branch -r --merged origin/main 列出候选分支再逐个确认:对仍有关联评审请求的分支,直接删除会让评审页面进入关闭状态,需要提前通知相关人员。

易错点

  • 误删远端功能分支不必惊慌:本地还有该分支时 git push origin <分支> 即可恢复,本地也没了就用 git reflog 找分支尖端
  • 删除分支与删除标签语法完全一致,名字写错会删掉另一类引用,执行前用 git ls-remote 核对名称
  • 受保护分支会拒绝删除并报 remote rejected,需要改平台规则而不是反复重试命令
  • 删除后忘记 fetch --prune,本地仍列出旧的远端跟踪引用,后续误操作容易引向不存在的分支

数据来源与参考

  • Git 官方文档:git-push(--delete)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌