Menu
CoddyTech

Git:删除本地分支

最后更新

分支的工作合并之后,用 git branch -d <branch> 删除它。如果分支上有没合并到任何地方的提交,Git 会拒绝删除,这是一道安全检查。如果还是要删除,就用大写的 -D。删除本地分支永远不会影响远程仓库上的那一份,那需要另一条命令。

在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。

git branch -d 只删除分支指针,已合并的提交仍留在 main 的历史中。

语法

命令作用
git branch -d feature删除 feature(仅当它已合并)
git branch -D feature即使未合并也强制删除 feature
git branch -d branch1 branch2一次删除多个分支

常见用法

目标命令
删除已合并的分支git branch -d old-feature
强制删除未合并的分支git branch -D scratch
删除当前所在的分支先 git switch main,再 git branch -d feature
查看哪些分支已合并git branch --merged

完整示例

完成一个功能,合并它,然后清理本地分支。

步骤命令结果
1git switch main离开要删除的分支
2git merge feature把功能分支的提交合并到 main
3git branch -d feature删除已经合并的分支

Git 删除本地分支常见问题

git branch -d 和 -D 有什么区别?
-d 是安全删除:只有当分支的提交已经合并到另一个分支时,Git 才会删除它,所以你不会意外丢失工作。-D 是强制删除(--delete --force 的简写):无论如何都会删除分支,即使上面有未合并的提交。默认使用 -d,只有在你确定要丢弃这个分支的提交时才用 -D。
如何删除当前所在的分支?
你不能删除当前检出的分支。先用 git switch main(或 git checkout main)切换到另一个分支,然后运行 git branch -d feature。如果你尝试删除当前分支,Git 会报错“Cannot delete branch ... checked out”。
删除本地分支会删除 GitHub 上的分支吗?
不会。git branch -d 只会从你的本地仓库中删除分支。远程仓库(GitHub、GitLab 等)上的分支会一直存在,直到你用 git push origin --delete feature 单独删除它。
删除的分支还能恢复吗?
如果是最近删除的,通常可以。运行 git reflog 找到分支原来指向的提交,然后用 git branch feature <commit-hash> 重新创建它。这些提交不会马上被垃圾回收,所以误删的分支一般都能恢复。
可以在线练习吗?

可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行这些命令,无需安装任何东西。想系统学习的话,Coddy 免费的互动式 Git 课程会一步步带你从第一次提交学到分支和合并。

Coddy 编程语言插图

在 Coddy 学习 Git

开始