如何在本地和远程删除 Git 分支
本地分支及其远程副本是两个独立的事物。以下是如何删除每个分支、常见错误的含义、如何清理过时的引用以及如何恢复错误删除的分支。
撰写者 Kodmora
GitTree 背后的软件公司
- 分支
- 远程仓库和推送
- 撤消和恢复
在此页面上
要删除本地分支,请运行 `git branch -d branch-name`。要在远程仓库上删除它,请运行 `git push origin --delete branch-name`。 它们是单独的操作:删除一个操作会保留另一个操作。如果分支有未合并的提交,Git 会拒绝第一个命令,从而保护您的工作。
| 目标 | 命令 |
|---|---|
| 删除合并的本地分支 | git branch -d feature/search |
| 强制删除未合并的本地分支 | git branch -D feature/search |
| 删除远程分支 | git push origin --delete feature/search |
| 删除过时的远程跟踪引用 | git fetch --prune |
如何删除本地 Git 分支?
首先切换离开,因为 Git 不会删除你所在的分支。然后删除它:
git switch main
git branch -d feature/searchGit 打印分支的最后一次提交。暂时保留该哈希值,因为这是最简单的返回方法:
Deleted branch feature/search (was 4f2a9c1).如何删除远程分支?
git push origin --delete feature/search这会删除使用该远程的每个人的分支,因此请检查是否没有人仍然需要它并且其拉取请求是否已关闭。您的本地副本将保留,直到您将其也删除为止。
删除错误是什么意思?
| 留言 | 含义 | 修复 |
|---|---|---|
not fully merged | 该分支的提交不在其上游或 HEAD 中。 | 合并它,或者如果您确定不需要它们,请使用 -D。 |
cannot delete branch … used by worktree | 您位于此处或另一个工作树中。 | 运行 git switch main,或删除另一个工作树。 |
remote ref does not exist | 分支已经从远程消失了。 | 运行 git fetch --prune 以清除过时的副本。 |
git Remote prune origin 有什么作用?
当有人删除远程分支时,您的存储库会保留其 origin/feature/search 引用,直到您将其删除。修剪会删除那些过时的引用。它永远不会触及您的本地分支:
git fetch --prune
# or, without fetching anything new
git remote prune origin要查看哪些本地分支丢失了远程副本,请在详细列表中查找 gone:
git branch -vv如何找回已删除的分支?
分支只是提交的名称,因此删除它并不会立即删除提交。根据 Git 打印的哈希值再次创建名称,或者在引用日志中找到它:
git branch feature/search 4f2a9c1
# no hash? search the reflog
git reflog尽快执行此操作:无法访问的提交最终会被垃圾收集清理。关于恢复删除的存储或删除的分支 的帖子涵盖了更困难的情况,关于分支和切换 的课程解释了为什么分支如此便宜。
如何删除 GitTree 中的分支
打开分支的菜单
右键单击图中的分支标签。菜单为每个操作中的分支命名。
选择删除
GitTree 表示删除的内容以及最后一次提交保存在
refs/ogt/trash下。 取消是默认设置,因此请按删除功能/搜索进行确认。也删除远程副本
删除...和 origin/... 删除两者,并通过 删除两者 进行确认。在远程删除的分支无法从 GitTree 恢复。
改变主意了吗?
本地删除后立即按工具栏中的 撤消 可恢复分支。
重命名和删除分支 指南提供了详细信息,而如何重命名分支 则涵盖了更改名称。

常见问题
删除分支会删除其提交吗?
不是马上。对其他分支的提交仍保留。仅在该分支上的提交变得无法访问并且可以恢复,直到垃圾收集将其删除。
git分支-d和-D有什么区别?
-d 拒绝删除具有未合并提交的分支。 -D 无论如何都会删除它,因此仅在确定时才使用它。
删除本地分支会删除远程分支吗?
不,他们是分开的。使用 git push origin --delete branch-name 作为远程仓库。
为什么已删除的远程分支仍然出现?
您的存储库仍然有远程跟踪参考。运行 git fetch --prune 将其删除。
我可以一次删除多个分支吗?
是的。 git branch -d one two three 删除您列出的每个名称,而 git push origin --delete one two 在远程仓库上执行相同的操作。
来源
有关其他产品的声明已根据其位于 2026年11月7日 的官方页面进行了检查。价格和功能发生变化;供应商的页面是事实的来源。