Git删除分支 - 如何删除本地或远程分支

5,449 阅读5分钟

Git是一个流行的版本控制系统,也是网络开发者工具包中的一个重要工具。

分支是使用Git的一个强大的、不可或缺的部分。

在这篇文章中,你将了解到如何在 Git 中删除本地和远程分支的基本知识。

什么是 Git 中的分支?

分支是一个指向提交的指针。

Git 分支是一个项目及其变化的快照,从一个特定的时间点开始。

当在一个大项目上工作时,有一个包含所有代码的主仓库,通常称为mainmaster

分支允许你在原来的主要工作项目上创建新的、独立的版本。你可能会创建一个分支来编辑它以进行修改,增加一个新的功能,或者在你试图修复一个错误时写一个测试。而一个新的分支可以让你在不影响主代码的情况下完成这些工作。

因此,总结一下 - 分支让你在不影响核心代码的情况下对代码库进行修改,直到你完全准备好实施这些修改。

这可以帮助你保持代码库的整洁和有序。

为什么要删除 Git 中的分支?

你创建了一个分支来保存你想在项目中做出的改变的代码。

然后,你将该改动或新功能纳入项目的原始版本。

这意味着你不再需要保留和使用该分支,所以删除它是一种常见的最佳做法,这样就不会使你的代码变得混乱。

如何在 Git 中删除一个本地分支

本地分支是指你本地机器上的分支,不影响任何远程分支。

在 Git 中删除本地分支的命令是:

git branch -d  local_branch_name
  • git branch 是在本地删除一个分支的命令。
  • -d 是一个标志,是该命令的一个选项,它是 的别名。顾名思义,它表示你想删除什么。- 是你想删除的分支的名字。--delete local_branch_name

让我们通过一个例子更详细地了解一下。

要列出所有的本地分支,你可以使用以下命令:

git branch

我有两个分支,mastertest2 。我目前在test2 分支上,如(*) 所示:

Screenshot-2021-08-25-at-4.13.14-PM

我想删除test2 分支,但不可能删除你目前正在查看的一个分支。

如果你试图这样做,你会得到一个错误,看起来就像这样:

Screenshot-2021-08-25-at-4.17.50-PM

因此,在删除一个本地分支之前,请确保切换到另一个你不想删除的分支,使用git checkout 命令:

git checkout branch_name

#where branch_name is the name of the branch you want to move to
#in my case the other branch I have is master, so I'd do:
#git checkout master

下面是输出结果:

Screenshot-2021-08-25-at-4.20.40-PM

现在我可以删除该分支了:

Screenshot-2021-08-25-at-5.10.13-PM

我们刚才使用的删除本地分支的命令并不是在所有情况下都有效。

如果该分支包含未合并的修改和未推送的提交,-d 标志将不允许删除该本地分支。

这是因为这些提交没有被任何其他分支看到,Git 在保护你不会意外地丢失任何提交数据。

如果你试图这样做,Git 会显示一个错误:

Screenshot-2021-08-25-at-5.23.46-PM

正如错误所提示的,你需要使用-D 标志来代替:

git branch -D local_branch_name

-D 标志,大写字母D(这是-- delete --force 的别名),强制删除本地分支,而不考虑其合并状态。

但请注意,你应该谨慎使用这个命令,因为它没有提示你确认你的行动。

只有在你绝对确定要删除一个本地分支时才使用它。

如果你没有把它合并到另一个本地分支或推送到代码库中的一个远程分支,你将有可能失去你所做的任何修改。

Screenshot-2021-08-25-at-5.33.41-PM

如何在 Git 中删除一个远程分支

远程分支与本地分支是分开的。

它们是托管在远程服务器上的仓库,可以在那里访问。这与本地分支相比,后者是本地系统上的仓库。

删除一个远程分支的命令是:

git push remote_name -d remote_branch_name
  • 你可以用git push 命令来删除一个远程分支,而不是使用用于本地分支的git branch 命令。
  • 然后你指定远程的名称,在大多数情况下是origin
  • -d 是删除的标志,是 的别名。--delete
  • remote_branch_name 是你想删除的远程分支。

现在,让我们看一个如何删除远程分支的例子。

要查看任何远程分支,你可以使用这个命令:

git branch -a

-a 标志(--all 的别名)显示所有分支--包括本地和远程。

Screenshot-2021-08-25-at-7.35.31-PM

我有两个名为mastertest 的本地分支,以及两个远程分支origin/masterorigin/test

-r ,是--remotes 的别名,显示远程仓库:

Screenshot-2021-08-25-at-7.37.12-PM

我想删除远程的origin/test 分支,所以我使用了这个命令:

git push origin -d test

输出:

Screenshot-2021-08-25-at-7.39.34-PM

这就删除了名为origin 的远程仓库中的test 分支。

origin/test 的远程仓库已经不存在了:

Screenshot-2021-08-25-at-7.42.01-PM

结论

你现在知道如何在 Git 中删除本地和远程分支了。

如果你想学习更多关于Git的知识,你可以在freeCodeCamp的YouTube频道上观看以下课程:

谢谢你的阅读,学习愉快