Git最强大的特性之一是它的轻量级分支。它们允许您高效地处理并行的开发阶段。开发人员甚至可以为单独的bug创建单独的分支。在时间和空间上,分支几乎都是免费的。
许多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与命令行git程序不同,GitHub的桌面应用程序只允许删除活动分支。您可以通过分支菜单执行此操作,方法是选择删除选项并确认:
GitHub桌面不允许您删除默认的分支,例如main,即使git本身支持这一点。如果默认分支是当前活动的分支,则应用程序将禁用菜单操作。
如果分支还表示远程分支,GitHub Desktop还提供了从远程删除它的选项:
GitKraken在左侧边栏中显示存储库的本地和远程分支。必须分别删除每个。
将鼠标悬停在相应的分支名称上,然后单击分支操作菜单,该菜单看起来像三个垂直点。从菜单中,选择删除<;分支名称>;:
您将看到一条确认消息,通知您这是一次破坏性操作。您可以通过“删除”按钮确认是否要继续:
为了反映git命令行程序的默认行为,必须首先切换到要删除的分支以外的分支。否则,您将看到一条错误消息:
删除带有Tower的分支与删除带有GitKraken的分支非常相似。本地和远程分支显示在左侧的面板中。右键单击任何分支,然后从关联菜单中选择“删除”选项:
一个关键区别是,在确认过程中,可以将远程分支与其本地分支一起删除:
GitHub只充当远程源,因此默认情况下那里的分支是远程的。如果使用GitHub网站删除分支,则必须使用此处的其他方法之一删除相应的本地分支。
与GitHub桌面应用程序一样,GitHub网站将不允许您删除默认分支。该选项根本不会出现。不过,删除分支很简单。在存储库的“代码”页中,单击“分支”链接,找到要删除的分支,然后单击“删除此分支”图标,该图标看起来像一个垃圾桶:
请注意,没有检查未合并的更改,因此在GitHub上,分支将立即被删除。但是,由于它总是表示一个远程分支,因此这应该是您所期望的行为。
注意,删除之后,您将看到一个按钮来恢复分支。不过,这只是一个有用的撤消功能,以防意外单击删除图标。不要依赖它,因为一旦你刷新或离开页面,你就会失去选择!
Bitbucket与GitHub一样,不允许删除默认分支。Bitbucket将其称为存储库设置中的主分支。您可以通过相应的操作菜单删除“分支”选项卡上列出的任何其他分支:
如果要执行大型清理操作,也可以一次删除多个分支:
Git分支会使您的工作流复杂化,特别是带有本地、远程和跟踪分支的分支。但是对于简单的日常开发,您可能一直在创建和删除本地分支。这是您应该习惯的典型git工作流的一个核心方面。
...交的第一步是“暂存”新的或更新的项。看看上面的输出如何让你知道有“未老化”的变化?您可以使用以下命令暂存目录中的所有内容(递归,即包括子文件夹及其文件): ...
...流,分享你的技能,帮助开源世界受益。在本文中,了解如何将代码贡献给GitHub上的存储库或任何托管的git服务。 ...
想在Arch Linux上安装软件包但不知道如何安装?很多人在第一次从基于Debian的发行版迁移到Arch时都面临这个问题。但是,您可以使用包管理器在基于Arch的系统上轻松地管理包。 ...
...尤其是在最初的几篇草稿中。 git入门 让我们进入这一切如何工作的技术细节。我们将从PC开始,然后使用GitHub进入云计算。 要开始,您需要在macOS或Linux上安装终端程序。如果你的电脑运行Windows10,你必须通过WindowsSubsystem for Lin...
...并构建它”,却不知道下一步该怎么办?我们将向您展示如何让GitHub上的程序在Linux上运行,即使您是初学者。 组成计算机程序的指令被编写、编辑并保存在文本文件中。然后一个叫做编译器的程序处理这些文件。这将生成程序...
...个终端窗口。如果您有使用Unix终端的经验,您应该熟悉如何使用它。如果不是的话,这个过程很简单。只需将cd放到BuildTools jar所在的文件夹中,并使用java-jar运行它: cd ~/path/to/folder/ java -jar BuildTools.jar BuildTools程序现在将下载...