如何本地和远程删除 Git 中的分支
您删除 GitHub 中的分支的原因有多种。幸运的是,删除 Git 分支很容易。
要点
- 删除分支是典型 Git 工作流程的重要组成部分。
- 您可以使用命令“gitbranch -d [branchname]”删除本地分支,但要小心未合并的更改。
- GitHub Desktop、GitKraken、Tower 和 Bitbucket 等不同工具都有自己的删除分支的方法,因此请熟悉每个工具的具体流程。
Git 的分支非常轻量级,因此您可以在需要时轻松创建它们。但也很容易最终得到不再需要的剩余分支。那么删除分支涉及什么?
为什么要删除分支?
首先,如果您仍在学习如何使用 git 分支构建项目,那么您很有可能创建一个分支,然后决定不需要这样做。这很好,因为分支是一种轻量级操作;它速度非常快并且可以有效地利用磁盘空间。
因此,许多 git 开发工作流程鼓励分支,即使对于非常小的或短的任务也是如此。例如,一个常见的策略是为每个错误修复创建一个单独的分支。
删除分支应该与创建分支一样成为日常工作流程的一部分。
带有分支的示例存储库
下面的示例引用了具有以下结构的示例存储库:
请注意,该存储库有两个分支:main 和 dev。每个本地分支都是一个跟踪分支,在远程服务器(源)上有一个相应的上游分支。
很容易丢失分支的踪迹,因此请确保您知道如何从命令行列出 git 分支或在您的首选客户端中查看它们。
使用命令行删除分支
删除分支的基本命令语法是:
git branch (-d | -D) [-r] <branchname>...
如何删除本地分支
该命令的最简单形式会删除本地分支,前提是它的所有更改都已合并:
git branch -d dev
当一切顺利时,您会看到一条确认消息:
您无法删除当前处于活动状态的分支;如果您尝试这样做,您会收到如下消息:
如果您删除包含未合并、未推送更改的本地分支,您将丢失这些更改。因此,git默认会拒绝删除这样的分支。在此示例中,dev 未合并尚未推送到远程分支的更改:
正如错误消息所示,您可以使用 -D 标志强制删除。
如果本地跟踪分支对应的远程分支是最新的,即使它未合并,您也可以删除它。 Git 仍然会显示警告,因此您知道发生了什么:
如何删除远程分支
删除远程分支是完全不同的。您将使用 git push 命令和 -d 标志来删除。之后,提供远程名称(通常来源)和分支名称:
使用 GitHub Desktop 删除本地和远程分支
与命令行 git 程序不同,GitHub 的桌面应用程序只允许您删除活动分支。您可以通过分支菜单执行此操作,选择删除选项并确认:
GitHub Desktop 不允许您删除默认分支,例如main——尽管 git 本身也支持这一点。如果默认分支是当前活动的分支,则应用程序将禁用菜单操作。
如果该分支也代表远程分支,GitHub Desktop 也会提供从远程删除它的选项:
使用 GitKraken 删除分支
GitKraken 在左侧边栏中显示存储库的本地和远程分支。您必须分别删除每个。
将鼠标悬停在相应的分支名称上,然后单击看起来像三个垂直点的分支操作菜单。从菜单中选择删除<分支名称>:
您将看到一条确认消息,通知您这是一个破坏性操作。您可以使用删除按钮确认您要继续:
为了反映 git 命令行程序的默认行为,您必须首先切换到要删除的分支以外的分支。否则,您会看到一条错误消息:
使用 Tower 删除本地和远程分支
使用 Tower 删除分支与使用 GitKraken 删除分支非常相似。该应用程序在左侧的面板中显示本地和远程分支。右键单击任何分支并从上下文菜单中选择“删除”选项:
一个关键区别是您可以在确认期间删除远程分支及其本地分支:
删除 GitHub 上的分支
GitHub 仅充当远程源,因此默认情况下那里的分支是远程的。如果您使用 GitHub 网站删除分支,则必须使用此处的其他方法之一删除相应的本地分支。
与 GitHub Desktop 应用程序一样,GitHub 网站不允许您删除默认分支。如果您尝试,您会看到一条错误消息:
然而,删除任何其他分支也很简单。在存储库的代码页面中,单击分支链接,找到要删除的分支,然后单击删除分支图标,该图标看起来像一个垃圾桶能:
请注意,不会检查未合并的更改,因此 GitHub 将立即删除分支。但是,由于它始终代表远程分支,因此这种行为应该是有意义的。
请注意,删除后,您将看到一个恢复分支的按钮。然而,这只是一个有用的撤消功能,以防万一您意外单击删除图标。不要依赖它,因为一旦您刷新或离开页面,您就会失去该选项!
删除 Bitbucket 上的本地和远程分支
Bitbucket 与 GitHub 一样,不允许您删除默认分支。 Bitbucket 在存储库设置中将其称为主分支。您可以通过相应的操作菜单删除分支选项卡上列出的任何其他分支:
如果您正在进行一项大型清理操作,您还可以一次删除多个分支:
删除分支是典型 Git 工作流程的一部分
Git 分支可能会使您的工作流程变得复杂,尤其是具有本地、远程和跟踪分支的工作流程。但对于简单的日常开发,您可能会一直创建和删除本地分支。这是您应该习惯的典型 git 工作流程的核心方面。
如果您发现很难准确记住如何删除分支,请考虑设置别名来删除分支并简化过程。
更新于:6个月前
相关文章
- Git 常用命令总结
- git 里的gitignore不生效的解决方案
- Git 常用命令
- git clean 命令详解
- git 常用命令
- git switch 命令详解
- git rebase 命令详解
- git commit 代码提交规范
- git status 查看状态文件名乱码
- git stash 命令详解(保存开发进度)
- git fetch 命令详解
- git merge 命令详解
- .git 目录结构内容解析
- git clone 拉取远程仓库
- git tag 命令详解
- git rm 从暂存区中删除内容
- git init 初始化仓库
- git checkout 命令详解
- git help 查看命令手册
- git add 命令详解