原文:Git Delete Branch – How to Remove a Local or Remote Branch,作者:Dionysia Lemonaki

Git 是一种流行的版本控制系统,也是 Web 开发人员工具包中必不可少的工具。

分支是使用 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 频道观看以下课程:

感谢你阅读本文,祝你编程愉快!