如何在本地和远程删除git中的分支

在GitHub中删除分支的原因有很多。幸运的是,删除Git分支很容易。...

Git最强大的特性之一是它的轻量级分支。它们允许您高效地处理并行的开发阶段。开发人员甚至可以为单独的bug创建单独的分支。在时间和空间上,分支几乎都是免费的。

knife-cutting-branch

许多git工作流同时处理长期分支和临时分支。因此,在开发过程中经常需要删除分支。有时需要从远程服务器以及本地分支中删除共享分支。

为什么要删除分支?

首先,如果您仍在使用git,那么很有可能会创建一个分支,然后决定不需要这样做。或者你可能正在用树枝做实验,想自己清理一下。这很好,因为git中的分支是一个轻量级操作。它的速度非常快,并有效地利用了磁盘空间。

因此,许多git开发工作流都鼓励分支,即使对于非常小或很短的任务也是如此。例如,一个常见的策略是为单个bug修复创建一个分支。即使只有一个作者在一个文件中做了一行更改,这也是正确的。

由于这些原因,创建和删除分支是需要很好理解的操作。您可能会发现自己经常在典型的开发工作流中删除分支。

带有分支的示例存储库

以下示例引用了具有以下结构的示例存储库:

$ git branch -vv1 dev 1ae41e8 [origin/dev] first commit2 * main 1ae41e8 [origin/main] first commit

请注意,每个本地分支都有一个来自远程:origin的对应上游分支。

使用命令行删除分支

删除分支的基本命令语法是:

git branch (-d | -D) [-r] <branchname>...

命令的最简单形式是删除本地分支,前提是该分支的所有更改都已合并:

$ git branch -d dev

无法删除当前处于活动状态的分支;如果尝试删除,将收到如下消息:

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

当一切顺利时,您将看到一条确认消息:

Deleted branch dev (was 1ae41e8).

如果删除一个只存在于本地的分支,并且没有合并更改,则会丢失这些更改。因此,在这种情况下,git将拒绝删除分支,默认情况下:

error: The branch ‘dev’ is not fully merged.If you are sure you want to delete it, run 'git branch -D dev’.

如错误消息所示,您可以使用-D标志强制删除。但是,git允许您删除远程存在的未合并本地分支:

warning: deleting branch ‘dev’ that has been merged to'refs/remotes/origin/dev’, but not yet merged to HEAD.Deleted branch dev (was 9a6d20b).

删除远程分支是完全不同的。您将使用gitpush命令和-d标志来删除。然后,提供远程服务器(通常是源站)的名称和分支名称:

$ git push -d origin devTo github.com:bobbykjack/sandbox.git- [deleted] dev

使用github桌面删除本地和远程分支

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

A screenshot showing how to delete a branch using GitHub desktop

GitHub桌面不允许您删除默认的分支,例如main,即使git本身支持这一点。如果默认分支是当前活动的分支,则应用程序将禁用菜单操作。

如果分支还表示远程分支,GitHub Desktop还提供了从远程删除它的选项:

A screenshot showing a remote branch being deleted in GitHub Desktop

使用gitkraken删除分支

GitKraken在左侧边栏中显示存储库的本地和远程分支。必须分别删除每个。

将鼠标悬停在相应的分支名称上,然后单击分支操作菜单,该菜单看起来像三个垂直点。从菜单中,选择删除&lt;分支名称&gt;:

Deleting a local branch using GitKraken

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

A screenshot of GitKraken showing a warning when attempting to delete a branch

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

A screenshot of GitKraken showing an error when attempting to delete the current branch

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

删除带有Tower的分支与删除带有GitKraken的分支非常相似。本地和远程分支显示在左侧的面板中。右键单击任何分支,然后从关联菜单中选择“删除”选项:

A screenshot showing how to delete a local branch in Tower

一个关键区别是,在确认过程中,可以将远程分支与其本地分支一起删除:

A screenshot showing the confirm dialog in Tower when deleting a branch

删除github上的分支

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

与GitHub桌面应用程序一样,GitHub网站将不允许您删除默认分支。该选项根本不会出现。不过,删除分支很简单。在存储库的“代码”页中,单击“分支”链接,找到要删除的分支,然后单击“删除此分支”图标,该图标看起来像一个垃圾桶:

A screenshot of the Branches page on GitHub

请注意,没有检查未合并的更改,因此在GitHub上,分支将立即被删除。但是,由于它总是表示一个远程分支,因此这应该是您所期望的行为。

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

A screenshot of GitHub showing the effects of a branch having been deleted

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

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

A screenshot showing a Branch Acti*** menu on Bitbucket

如果要执行大型清理操作,也可以一次删除多个分支:

A screenshot showing multiple branches being deleted on Bitbucket

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

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

  • 发表于 2021-03-28 02:05
  • 阅读 ( 333 )
  • 分类:编程

你可能感兴趣的文章

如何使用git分支来构造编程项目

... git如何存储东西 ...

  • 发布于 2021-03-12 01:24
  • 阅读 ( 289 )

像使用git的程序员一样管理文件版本控制

...交的第一步是“暂存”新的或更新的项。看看上面的输出如何让你知道有“未老化”的变化?您可以使用以下命令暂存目录中的所有内容(递归,即包括子文件夹及其文件): ...

  • 发布于 2021-03-13 08:00
  • 阅读 ( 257 )

下面介绍如何清理git并删除未跟踪的文件

... 如何清理git并删除未跟踪的文件或文件夹 ...

  • 发布于 2021-03-26 21:32
  • 阅读 ( 517 )

加入社会化编码潮流,为github存储库做出贡献

...流,分享你的技能,帮助开源世界受益。在本文中,了解如何将代码贡献给GitHub上的存储库或任何托管的git服务。 ...

  • 发布于 2021-03-27 04:33
  • 阅读 ( 221 )

如何在arch linux中安装和删除软件包

想在Arch Linux上安装软件包但不知道如何安装?很多人在第一次从基于Debian的发行版迁移到Arch时都面临这个问题。但是,您可以使用包管理器在基于Arch的系统上轻松地管理包。 ...

  • 发布于 2021-03-28 02:18
  • 阅读 ( 458 )

如何在github上创建第一个存储库

... 在本教程中,我们将探讨如何创建Github存储库、推送提交、标记发布等等。 ...

  • 发布于 2021-03-28 23:04
  • 阅读 ( 216 )

如何在git中创建新分支

...制概念的核心,尤其是Git。本文将介绍什么是分支,以及如何使用多种不同的工具创建分支。 ...

  • 发布于 2021-03-29 17:44
  • 阅读 ( 219 )

作者如何使用github存储他们的作品

...尤其是在最初的几篇草稿中。 git入门 让我们进入这一切如何工作的技术细节。我们将从PC开始,然后使用GitHub进入云计算。 要开始,您需要在macOS或Linux上安装终端程序。如果你的电脑运行Windows10,你必须通过WindowsSubsystem for Lin...

  • 发布于 2021-04-03 05:21
  • 阅读 ( 169 )

如何在linux上使用git安装软件

...并构建它”,却不知道下一步该怎么办?我们将向您展示如何让GitHub上的程序在Linux上运行,即使您是初学者。 组成计算机程序的指令被编写、编辑并保存在文本文件中。然后一个叫做编译器的程序处理这些文件。这将生成程序...

  • 发布于 2021-04-03 08:08
  • 阅读 ( 203 )

如何为定制的多人游戏运行一个插口式minecraft服务器

...个终端窗口。如果您有使用Unix终端的经验,您应该熟悉如何使用它。如果不是的话,这个过程很简单。只需将cd放到BuildTools jar所在的文件夹中,并使用java-jar运行它: cd ~/path/to/folder/ java -jar BuildTools.jar BuildTools程序现在将下载...

  • 发布于 2021-04-10 08:15
  • 阅读 ( 174 )
yzmissg2
yzmissg2

0 篇文章

相关推荐