Git:删除远程分支
最后更新
在本地删除分支并不会把它从远程仓库中删除,那是单独的一步。要删除远程仓库(比如 GitHub)上的分支,运行 git push origin --delete <branch>。之后,其他克隆中可能仍会显示这个分支,直到它们清理掉过期的远程跟踪引用。
在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。
语法
| 命令 | 作用 |
|---|---|
git push origin --delete feature | 删除远程仓库上的 feature |
git push origin :feature | 旧的冒号写法,效果相同 |
git branch -d feature | 同时删除本地分支 |
git fetch --prune | 清理过期的远程跟踪分支 |
彻底清理
在所有地方删除分支,并清理过期的引用。
| 步骤 | 命令 | 结果 |
|---|---|---|
| 1 | git push origin --delete feature | 从远程仓库删除 |
| 2 | git branch -d feature | 从本地删除 |
| 3 | git fetch --prune | 清除 origin/feature 跟踪引用 |
Git 删除远程分支常见问题
如何在 Git 中删除远程分支?
运行
git push origin --delete <branch>。这会从远程仓库(例如 GitHub)中删除分支。旧的等效写法是 git push origin :<branch>。删除远程分支不会删除你的本地副本,需要另外用 git branch -d <branch> 删除。删除本地分支会删除远程分支吗?
不会。
git branch -d 只会从你的本地仓库中删除分支。远程仓库上的分支会一直存在,直到你明确地用 git push origin --delete <branch> 删除它。两者互不影响。为什么删除的分支还会显示?
其他克隆会保留远程跟踪引用(比如
origin/feature),直到它们清理掉这些引用。运行 git fetch --prune(或 git remote prune origin),就能删除指向远程仓库上已不存在的分支的引用。--delete 和冒号写法有什么区别?
它们的作用相同。
git push origin --delete <branch> 是更清晰的新写法;git push origin :<branch> 是旧语法(向远程分支推送“空”内容,从而删除它)。为了可读性,请使用 --delete。可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行这些命令,无需安装任何东西。Coddy 免费的互动式 Git 课程也会一步步讲解如何使用远程仓库。