如何本地和远程删除 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 标志强制删除。

  如何在 Fire TV Stick 上进行屏幕镜像:终极指南

如果本地跟踪分支对应的远程分支是最新的,即使它未合并,您也可以删除它。 Git 仍然会显示警告,因此您知道发生了什么:

如何删除远程分支

删除远程分支是完全不同的。 您将使用 git push 命令和 -d 标志来删除。 之后,提供远程名称(通常是原始名称)和分支名称:

使用 GitHub Desktop 删除本地和远程分支

与命令行 git 程序不同, GitHub 的桌面应用程序 只会让你删除活动分支。 您可以通过“分支”菜单执行此操作,选择“删除”选项并确认:

GitHub Desktop 不会让您删除默认分支(例如 main),即使 git 本身也支持此操作。 如果默认分支是当前活动的分支,则应用程序将禁用菜单操作。

如果该分支也代表远程分支,GitHub Desktop 也会提供从远程删除它的选项:

使用 GitKraken 删除分支

吉特克拉肯 在左侧边栏中显示存储库的本地和远程分支。 您必须单独删除每个。

将鼠标悬停在适当的分支名称上,然后单击看起来像三个垂直点的分支操作菜单。 从菜单中选择删除 <分支名称>:

您将看到一条确认消息,通知您这是破坏性操作。 您可以使用“删除”按钮确认要继续:

为了反映 git 命令行程序的默认行为,您必须首先切换到要删除的分支以外的分支。 否则,您将看到一条错误消息:

使用 Tower 删除本地和远程分支

删除分支 与使用 GitKraken 删除分支非常相似。 该应用程序在左侧的面板中显示本地和远程分支。 右键单击任何分支并从上下文菜单中选择“删除”选项:

一个关键区别是您可以在确认期间删除远程分支及其本地分支:

删除 GitHub 上的分支

GitHub 仅充当远程源,因此默认情况下那里的分支是远程的。 如果您使用 GitHub 网站删除分支,则必须使用此处的其他方法之一删除相应的本地分支。

与 GitHub Desktop 应用程序一样,GitHub 网站不允许您删除默认分支。 如果您尝试,您会看到一条错误消息:

然而,删除任何其他分支也很简单。 在存储库的“代码”页面中,单击“分支”链接,找到要删除的分支,然后单击“删除分支”图标,该图标看起来像一个垃圾桶:

请注意,不会检查未合并的更改,因此 GitHub 将立即删除分支。 但是,由于它始终代表远程分支,因此这种行为应该是有意义的。

请注意,删除后,您将看到一个“恢复分支”按钮。 然而,这只是一个有用的撤消功能,以防万一您意外单击删除图标。 不要依赖它,因为一旦您刷新或离开页面,您就会失去该选项!

删除 Bitbucket 上的本地和远程分支

Bitbucket 与 GitHub 一样,不允许您删除默认分支。 Bitbucket 将其称为存储库设置中的主分支。 您可以通过相应的“操作”菜单删除“分支”选项卡上列出的任何其他分支:

  如何在桌面上获取此 PC 图标

如果您正在进行一项大型清理操作,您还可以一次删除多个分支:

删除分支是典型 Git 工作流程的一部分

Git 分支可能会使您的工作流程变得复杂,尤其是具有本地、远程和跟踪分支的工作流程。 但对于简单的日常开发,您可能会一直创建和删除本地分支。 这是您应该习惯的典型 git 工作流程的核心方面。

如果您发现很难准确记住如何删除分支,请考虑设置别名来删除分支并简化过程。