如何在本地和远程删除 Git 分支?

Posted

技术标签:

【中文标题】如何在本地和远程删除 Git 分支?【英文标题】:How do I delete a Git branch locally and remotely? 【发布时间】:2021-12-27 13:32:45 【问题描述】:

我想在本地和远程删除一个分支。

尝试删除远程分支失败

$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject

* [new branch] bugfix -> origin/bugfix
Already up-to-date.

要在本地和远程成功删除remotes/origin/bugfix 分支,我应该做些什么不同的事情?

【问题讨论】:

版主说明:如果您打算回答这个问题,请注意已经发布了 40 个答案。您的新答案会增加任何实质性价值吗? 注意:对于 Git 2.5+(2015 年第二季度),确切的消息将是“deleted remote-tracking branch”:请参阅 github.com/git/git/commit/… 跳过前几个答案,直接跳到最好的答案:***.com/a/23961231/4561887。要删除一个 git 分支,实际上有 3 个不同的分支要删除! 这个答案清楚地说明了这一事实。 @GabrielStaples 没有上下文,您的评论令人困惑。 “最佳”评分的答案是否有错误? @Nathan,不,他们没有错,但他们不会教你不知道你不知道的东西 ,而我链接到的那个使这个关键的 unknown unknown 变成 known unknown 然后是 known known。在我阅读该答案之前,我不知道您有 1) 本地分支、2) 本地存储的远程跟踪分支和 3) 远程分支。在此之前,我认为只有一个本地分支远程分支。本地存储的远程跟踪分支是一个unknown unknown。将其变为已知的是最佳答案的原因。 【参考方案1】:

执行摘要

$ git push -d <remote_name> <branchname>
$ git branch -d <branchname>

注意:在大多数情况下,&lt;remote_name&gt; 将是 origin

删除本地分支

要删除 本地 分支,请使用以下方法之一:

$ git branch -d <branch_name>
$ git branch -D <branch_name>
-d 选项是--delete 的别名,仅当分支已完全合并到上游分支时才会删除。 -D 选项是--delete --force 的别名,它会删除“无论其合并状态如何”的分支。 [来源:man git-branch] 从Git v2.3 开始,git branch -d(删除)学会了尊重-f(强制)标志。 如果您尝试删除当前选定的分支,您将收到错误消息。

删除远程分支

截至Git v1.7.0,您可以使用

删除远程分支
$ git push <remote_name> --delete <branch_name>

这可能比记忆更容易

$ git push <remote_name> :<branch_name>

在Git v1.5.0“删除远程分支或标签”中添加。

以Git v2.8.0 开头,您还可以使用git push-d 选项作为--delete 的别名。因此,您安装的 Git 版本将决定您是否需要使用更简单或更难的语法。

删除远程分支 [2010 年 1 月 5 日的原始答案]

来自 Scott Chacon 的 Pro Git 第 3 章:

删除远程分支

假设你完成了一个远程分支——比如说,你和你的合作者完成了一个特性,并将它合并到你远程的主分支(或者你的稳定代码行所在的任何分支)。您可以使用相当钝的语法git push [remotename] :[branch] 删除远程分支。如果要从服务器中删除 server-fix 分支,请运行以下命令:

$ git push origin :serverfix
To git@github.com:schacon/simplegit.git
 - [deleted]         serverfix

轰隆隆。您的服务器上没有更多分支。您可能想对这个页面进行狗耳朵,因为您将需要该命令,并且您可能会忘记语法。记住这个命令的一种方法是回忆我们之前讨论过的git push [remotename] [localbranch]:[remotebranch] 语法。如果您省略了 [localbranch] 部分,那么您基本上是在说,“不要站在我这边,让它成为 [remotebranch]。”

我发布了git push origin: bugfix,效果很好。 Scott Chacon 是对的——我想dog ear 那个页面(或者通过在 *** 上回答这个问题几乎是狗耳朵)。

那你应该在其他机器上执行这个

# Fetch changes from all remotes and locally delete 
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune

传播更改。

【讨论】:

在服务器上删除远程分支后,别忘了在其他机器上做一个git fetch --all --prune。 |||在用git branch -d 删除本地分支并用git push origin --delete 删除远程分支后,其他机器可能仍然有“过时的跟踪分支”(看到它们做git branch -a)。要摆脱这些,请执行git fetch --all --prune 除了@TrevorBoydSmith 的git branch -a 可以查看所有分支,还可以使用git branch -r 仅查看远程分支。另见git remote show origin - 来源:gitready.com/intermediate/2009/02/13/list-remote-branches.html 我必须运行 git branch -D Branch_Name 才能摆脱本地分支 @KolobCanyon 如果分支没有被合并到另一个分支,你只需要使用 -D。 问题是 “我需要做些什么不同的事情才能在本地和 GitHub 上成功删除 remotes/origin/bugfix 分支?”运行更新答案中的命令后,本地分支仍然存在。如果接受的答案是 complete 答案,那就太好了。 Git 使简单任务变得如此困难,这绝对是惊人的……【参考方案2】:

Matthew's answer 非常适合删除 remote 分支,我也很欣赏解释,但要简单区分这两个命令:

要从您的计算机中删除 本地分支

git branch -d the_local_branch(使用-D 强制删除分支而不检查合并状态)

要从服务器中删除远程分支

git push origin --delete the_remote_branch

参考:Git: Delete a branch (local or remote)

【讨论】:

@megido well -D 强制删除,-d 如果尚未合并,则会发出警告。 如果您的本地分支未与 master 合并并运行 'git branch -d your_branch,那么您将出现类似 error: The branch 'your_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D your_branch'. 的错误 我建议使用 -d 而不是 -D 因为它更安全。如果 -d 由于未合并的提交而失败,那么您需要对其进行评估,如果可以删除,则使用 -D。 其他具有已删除远程分支的存储库克隆应运行git remote prune &lt;name&gt;(例如git remote prune origin),以便在本地删除远程中不再存在的陈旧分支。 我想补充一点,如果 -d 未与当前 HEAD 合并,则会发出警告。如果你需要清晰,我推荐这个命令git branch -a --merged origin/master 它会列出任何分支,本地和远程;已合并到master中。 Additional information here【参考方案3】:

简短答案

如果您想对以下命令进行更详细的解释,请参阅下一节中的长答案。

删除远程分支

git push origin --delete <branch>  # Git version 1.7.0 or newer
git push origin -d <branch>        # Shorter version (Git 1.7.0 or newer)
git push origin :<branch>          # Git versions older than 1.7.0

删除本地分支

git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force-delete un-merged branches

删除本地远程跟踪分支

git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter

git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches
git fetch <remote> -p      # Shorter

长答案:要删除三个不同的分支!

当您在本地和远程处理删除分支时,请记住涉及三个不同的分支

    本地分支X. 远程源分支X。 本地远程跟踪分支origin/X 跟踪远程分支X

使用的原始海报:

git branch -rd origin/bugfix

只删除了他的本地远程跟踪分支origin/bugfix,而不是origin上的实际远程分支bugfix

要删除实际的远程分支,您需要

git push origin --delete bugfix

其他细节

以下部分描述了删除远程和远程跟踪分支时要考虑的其他详细信息。

推送删除远程分支也会删除远程跟踪分支

请注意,使用git push 从命令行删除远程分支X 也会删除本地远程跟踪分支 origin/X,因此不需要修剪过时的分支使用git fetch --prunegit fetch -p 进行远程跟踪分支。但是,无论如何,如果您这样做也不会受到伤害。

您可以通过运行以下命令来验证远程跟踪分支origin/X 是否也被删除:

# View just remote-tracking branches
git branch --remotes
git branch -r

# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a

修剪过时的本地远程跟踪分支 origin/X

如果您没有从命令行删除远程分支X(如上),那么您的本地存储库仍将包含(现已过时的)远程跟踪分支origin/X。例如,如果您直接通过 GitHub 的 Web 界面删除了远程分支,就会发生这种情况。

删除这些过时的远程跟踪分支(从 Git 版本 1.6.6 开始)的典型方法是简单地运行 git fetch--prune 或更短的 -p请注意,这会删除远程上不再存在的任何远程分支的所有过时的本地远程跟踪分支

git fetch origin --prune
git fetch origin -p # Shorter

这是来自1.6.6 release notes(强调我的)的相关引用:

"git fetch" 学习了 --all--multipleoptions,从中运行 fetch 许多存储库,以及 --prune 选项来删除远程跟踪 过时的分支。 这些使“git 远程更新”和“git 远程修剪”不太必要(没有计划删除“远程 更新”或“远程修剪”)。

替代上述自动修剪过时的远程跟踪分支

或者,不要通过 git fetch -p 修剪过时的本地远程跟踪分支,您可以避免进行额外的网络操作,只需使用 --remote 手动删除分支或-r标志:

git branch --delete --remotes origin/X
git branch -dr origin/X # Shorter

另见

git-branch(1) Manual Page。 git-fetch(1) Manual Page。 Pro Git § 3.5 Git Branching - Remote Branches。

【讨论】:

@huggie 这非常正确。 Git 中的分支只是附加到提交的书签。所以在我上面的图表中,本地克隆中有Xorigin/X书签(2个分支),然后远程有X(3个分支)。 +1 表示远程跟踪分支。当您克隆其他人的分支时,此分支会导致问题。它会继续跟踪您的提交并询问您是否要推送到该人的分支。 为了未来的读者:@Kermit_ice_tea 上面所说的是 local 分支(如本答案所述),而不是 remote-tracking 分支。当 本地分支 为其配置了“上游分支”时,默认情况下,它将从该远程分支拉取并推送到该远程分支。设置了“上游分支”的本地分支是referred to as a "tracking branch",因此由于术语相似,很容易与远程跟踪分支混淆。跨度> 我已经阅读了所有的答案,这肯定是迄今为止我读过的最好的答案!--(可能是本页上最好的答案,期间)。尤其如此,因为它是唯一的答案,它说明了我以前从未知道的这个非常重要的事实:“要删除 3 个不同的分支!”我不知道!这一切现在变得更有意义了,它也为这里的所有其他答案提供了很多启示。谢谢! 应该注意的是,运行git push origin --delete &lt;branch&gt;,据我所知,还删除了本地存储的名为origin/branch 的远程跟踪分支。因此,要在一个命令中删除远程分支和本地存储的远程跟踪分支,只需使用git push origin --delete &lt;branch&gt; 然后,您只需使用git branch -D branch 删除本地分支。这涵盖了仅用 2 个命令删除所有 3 个分支。【参考方案4】:

删除分支的步骤:

删除远程分支:

git push origin --delete <your_branch>

要删除本地分支,您有三种方式

1: git branch -D <branch_name>

2: git branch --delete --force <branch_name>  # Same as -D

3: git branch --delete  <branch_name>         # Error on unmerge

解释:好的,解释一下这里发生了什么!

只需执行git push origin --delete 只删除您的远程分支,在末尾添加分支的名称,这将删除并将其推送到远程 同时...

另外,git branch -D,它只是删除本地分支!...

-D 代表--delete --force,即使它没有合并也会删除分支(强制删除),但你也可以使用-d,它代表--delete,它会抛出与分支合并状态相关的错误。 ..

我还创建了下面的图片来显示步骤:

【讨论】:

git branch -a 将显示本地和远程分支。这将有助于您介绍图表。 请注意,如果您在要删除的分支上进行设置,则需要在删除本地分支之前签出您需要删除的分支以外的分支(例如:master)。 当分支在原点被删除时,您的本地存储库不会注意到这一点。您仍然会拥有这些分支的本地缓存版本(这实际上很好),但 git branch -a 仍会将它们列为远程分支。您可以像这样在本地清理该信息:git remote prune origin 您的已删除分支的本地副本不会因此而被删除。使用git fetch --prune实现同样的效果 图片令人分心,而且非常大,对答案没有任何帮助。我希望这不会成为 SO 的趋势。【参考方案5】:

你也可以使用以下删除远程分支

git push --delete origin serverfix

做同样的事情
git push origin :serverfix

但它可能更容易记住。

【讨论】:

...使用起来更安全:O 您忘记了删除本地分支的部分,可以通过git branch -d &lt;local_branch&gt;git branch -D &lt;local_branch&gt;强制删除【参考方案6】:

很简单:

删除远程分支

git push -d origin <branch-name>

或者

git push origin :<branch-name>

-- 你也可以用这种语法删除标签

强制删除本地分支

git branch -D <branch-name>

注意:删除远程分支后在其他机器上执行git fetch --all --prune,以删除过时的跟踪分支。

示例

删除本地分支

git branch -D my-local-branch

删除远程分支

git push origin :my-remote-branch

【讨论】:

我需要使用--delete 而不是-d 来删除远程分支。 -d 选项是--delete 的别名,如果--delete 有效,那么-d 也应该有效,如果您想删除一个分支,您可以使用-D 而不是@ 987654334@ 或 --delete. -d 对我不起作用。终端告诉我改用-D【参考方案7】:

提示:当您使用删除分支时

git branch -d <branchname> # Deletes local branch

git push origin :<branchname> # Deletes remote branch

仅删除引用。即使分支实际上已在远程删除,对它的引用仍然存在于团队成员的本地存储库中。这意味着对于其他团队成员,当他们执行git branch -a 时,已删除的分支仍然可见。

要解决此问题,您的团队成员可以使用

修剪已删除的分支
git remote prune <repository>

这通常是git remote prune origin

【讨论】:

你应该澄清一下,上面的git push操作删除了本地分支远程分支。 请注意,git remote prune 是删除过时远程跟踪分支的一种有些过时的方法,较新的方法是使用 git fetch --prunegit fetch -p @RRMadhav,确实在删除后您不会看到已删除的分支,因为对远程分支的引用将在本地为您删除。您团队中已签出该分支的任何其他人仍将拥有该引用并且仍然会看到它,除非他们修剪该分支。【参考方案8】:

如果要删除分支,请先checkout到要删除的分支以外的分支。

git checkout other_than_branch_to_be_deleted

删除本地分支:

git branch -D branch_to_be_deleted

删除远程分支:

git push origin --delete branch_to_be_deleted

【讨论】:

【参考方案9】:
git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>

【讨论】:

请注意-D 强制删除。最好使用-d,它会提醒您是否需要做一些危险的事情。 ahahah :) 由你决定:如果你想看到 git 哭,使用 -d,如果你想哭,使用 -D。【参考方案10】:

这很简单:只需运行以下命令:

要在本地和远程删除 Git 分支,首先使用以下命令删除本地分支:

git branch -d example

(这里example是分支名称。)

然后,使用以下命令删除远程分支:

git push origin :example

【讨论】:

【参考方案11】:

另一种方法是:

git push --prune origin

警告: 这将删除所有本地不存在的远程分支。或更全面地说,

git push --mirror

将有效地使远程存储库看起来像存储库的本地副本(本地头、远程和标签在远程上镜像)。

【讨论】:

git push --prune origin 在 gitlab 上没有为我做任何事情: git clone git://repo.git; git 分支 -d -r 起源/一些分支; git push --prune 起源;产量:一切都是最新的;混帐获取;恢复本地删除的分支; git push --镜像;现在他们真的走了!【参考方案12】:

我在Bash 设置中使用以下内容:

alias git-shoot="git push origin --delete"

然后你可以调用:

git-shoot branchname

【讨论】:

我最终只是将别名“shoot”添加到我的 .gitconfig shoot = push origin --delete 如果您的来源是 Atlassian Stash 并且分支设置为默认,您将收到错误“默认情况下,拒绝删除当前分支...”。在删除之前,我必须更改 Stash 中的默认分支以指向另一个分支。 这非常简单,因为您已经完成了它,但仅供参考 git 还允许您制作自定义命令。将git push origin --delete $1 放在路径上名为git-shoot 的文件中,git shoot branchname 也可以。【参考方案13】:

在本地删除:

要删除本地分支,可以使用:

git branch -d <branch_name>

要强制删除分支,请使用-D 而不是-d

git branch -D <branch_name>

远程删除:

有两种选择:

git push origin :branchname

git push origin --delete branchname

我建议你使用第二种方式,因为它更直观。

【讨论】:

【参考方案14】:

如果您想用一个命令完成这两个步骤,您可以通过将以下内容添加到您的 ~/.gitconfig 来为其创建别名:

[alias]
    rmbranch = "!f() git branch -d $1 && git push origin --delete $1; ;f"

或者,您可以使用以下命令从命令行将其添加到全局配置中

git config --global alias.rmbranch \
'!f() git branch -d $1 && git push origin --delete $1; ;f'

注意:如果使用-d(小写d),分支只有在合并后才会被删除。要强制删除,您需要使用 -D(大写 D)。

【讨论】:

这就是我要找的。我自己的 shell 函数别名不起作用(意外 EOF),我不知道为什么,但这很好用!我所做的唯一更改是将&amp;&amp; 替换为;,这样即使第一个命令失败,第二个命令仍然会执行(有时只存在本地或只存在远程)。【参考方案15】:

自 2013 年 1 月起,GitHub 在您的“分支”页面中的每个分支旁边都包含了一个删除分支按钮。

相关博文:Create and delete branches

【讨论】:

我今年才开始使用 Github,所以我想知道为什么这是一个评分如此高的问题,为什么没有一个热门答案建议从 Github 网络界面中删除它!有趣的是,这只是最近添加的。 我要指出这一点。请注意,该按钮不会删除您的本地分支...请参阅此答案以了解如何执行此操作:***.com/a/10999165/901641【参考方案16】:

本地和远程删除您的分支

结帐到主分支 - git checkout master

删除您的远程分支 - git push origin --delete &lt;branch-name&gt;

删除您的本地分支 - git branch --delete &lt;branch-name&gt;

【讨论】:

【参考方案17】:

您也可以使用git remote prune origin 进行此操作

$ git remote prune origin
Pruning origin
URL: git@example.com/yourrepo.git
 * [pruned] origin/some-branchs

它从git branch -r 列表中修剪和删除远程跟踪分支。

【讨论】:

【参考方案18】:

除了其他答案,我经常使用git_remote_branch 工具。这是一个额外的安装,但它为您提供了一种与远程分支交互的便捷方式。在这种情况下,要删除:

grb delete branch

我发现我也经常使用publishtrack 命令。

【讨论】:

【参考方案19】:

一个单行命令删除本地和远程

D=branch-name; git branch -D $D; git push origin :$D

或者将下面的别名添加到你的 ~/.gitconfig。用法:git kill branch-name

[alias]
    kill = "!f() git branch -D \"$1\";  git push origin --delete \"$1\"; ;f"

【讨论】:

⚠️ 在脚本中谨慎使用git branch -D,因为它会强制删除分支而不检查它是否已合并。使用-d 是安全的。【参考方案20】:

Deleting Branches

假设我们在分支“contact-form”上的工作已经完成,并且我们已经将它集成到“master”中。由于我们不再需要它,我们可以(在本地)删除它:

$ git branch -d contact-form

对于删除远程分支:

git push origin --delete contact-form

【讨论】:

【参考方案21】:

删除远程分支

git push origin :&lt;branchname&gt;

删除本地分支

git branch -D &lt;branchname&gt;

删除本地分支步骤:

    结账到另一个分店 删除本地分支

【讨论】:

远程分支删除之后需要“git push”吗? @SamithaChathuranga 不,git push origin :&lt;branchname&gt; 已经将一个“空”分支推送到远程(因此删除了远程分支)【参考方案22】:

简单地说:

git branch -d <branch-name>
git push origin :<branch-name>

【讨论】:

如果它是您自己的分支,则此方法有效。但是,如果你要修剪 repo 中所有不需要的分支(其中一些不是你的),那就不够了【参考方案23】:

删除本地 - (正常)

git branch -d my_branch

如果您的分支处于变基/合并进度并且未正确完成,则意味着您将收到错误 Rebase/Merge in progress,因此在这种情况下,您将无法删除您的分支。

所以要么你需要解决变基/合并。否则,您可以使用 delete 来强制,

git branch -D my_branch

远程删除

git push --delete origin my_branch

您也可以使用:

git push origin :my_branch   # Easy to remember both will do the same.

图形表示:

【讨论】:

【参考方案24】:
git push origin --delete <branch Name>

更容易记住
git push origin :branchName

【讨论】:

【参考方案25】:

现在您可以使用 GitHub Desktop 应用程序来实现。

启动应用程序后

    点击包含分支的项目

    切换到你要删除的分支

    从“分支”菜单中,选择“取消发布...”,以从 GitHub 服务器中删除分支。

    从“分支”菜单中,选择“删除“branch_name”...',将分支从您的本地机器(也就是您当前正在使用的机器)上删除

【讨论】:

我没有投反对票,但我认为这并没有实质性帮助。问题显然是在无需使用外部程序的情况下要求更多命令行类型的答案,如果人们点击此处,他们可能不会为桌面方式寻找 github。 @Daemedeor,我不同意。在 2010 年,当 OP 提出这个问题时,UI 的方式并不存在,唯一的选择是命令行。为了表明您只需要命令行选项,应在问题中或标签中说明,command-line-interface,在这种情况下不存在。 删除远程分支的 git 命令很糟糕,我倾向于忘记它(新旧)。幸运的是,有 GUI 工具可以选择。 Git Gui、TortoiseGit 和 GitHub Desktop 都有它——我希望 Git Extensions 也有这个功能。无论如何,我记得当我需要删除远程分支时,从 Git Extensions 中启动 Git Gui。【参考方案26】:

如果你有一个与远程分支同名的标签,这将不起作用:

$ git push origin :branch-or-tag-name
error: dst refspec branch-or-tag-name matches more than one.
error: failed to push some refs to 'git@github.com:SomeName/some-repo.git'

在这种情况下,您需要指定要删除的分支,而不是标签:

git push origin :refs/heads/branch-or-tag-name

同样,要删除标签而不是您将使用的分支:

git push origin :refs/tags/branch-or-tag-name

【讨论】:

这很好,但人们真的不应该首先用相同的名称和相同的命名方案来命名他们的分支和标签。 嗯,我的场景是我将一个分支转换为一个标签,并且标签与分支同名是有意义的。通过转换,我的意思是将分支 B 合并到 A 并用标签 B 标记分支 B 中的最后一次提交,以便在删除分支 B 后,它仍然可以通过简单地签出标签 B 轻松恢复。 More 上: 以及为什么deletes git push origin :refs/heads/main 时,我仍然得到同样的错误error: failed to push some refs to 'https://github.com/tik9/tik9.github.io'。可能github 是罪魁祸首。【参考方案27】:

许多其他答案会导致错误/警告。这种方法相对来说是万无一失的,尽管例如,如果它没有完全合并到 some_other_branch 中,您可能仍然需要 git branch -D branch_to_delete

git checkout some_other_branch
git push origin :branch_to_delete
git branch -d branch_to_delete

如果您删除了远程分支,则不需要远程修剪。它仅用于获取您正在跟踪的存储库上可用的最新远程。我观察到git fetch 会添加遥控器,而不是删除它们。下面是git remote prune origin 实际执行某些操作的示例:

用户 A 执行上述步骤。用户 B 将运行以下命令来查看最新的远程分支:

git fetch
git remote prune origin
git branch -r

【讨论】:

【参考方案28】:

我厌倦了在谷歌上搜索这个答案,所以我之前对the answer that crizCraig posted 采取了类似的方法。

我在我的 Bash 个人资料中添加了以下内容:

function gitdelete()
    git push origin --delete $1
    git branch -D $1

然后每次我完成一个分支(例如合并到master)时,我都会在我的终端中运行以下命令:

gitdelete my-branch-name

...然后从origin 以及本地删除my-branch-name

【讨论】:

对此进行扩展,--delete "$@"-D "$@" 而不是 $1 将为多个分支处理它。 我建议先运行git branch -d(带有小写'd')以确保更改已合并,如果成功则推送(在命令之间放置&amp;&amp;【参考方案29】:

根据使用终端的最新文档我们可以通过以下方式删除。

在本地删除:

git branch -D usermanagement

远程删除:

git push --delete origin usermanagement

【讨论】:

我真的不知道为什么git 命令如此不一致且难以记忆。看删除,一个是-D,另一个是-d|--delete【参考方案30】:

用途:

git push origin :bugfix  # Deletes remote branch
git branch -d bugfix     # Must delete local branch manually

如果你确定要删除它,运行

git branch -D bugfix

现在清理已删除的远程分支运行

git remote prune origin

【讨论】:

以上是关于如何在本地和远程删除 Git 分支?的主要内容,如果未能解决你的问题,请参考以下文章

你如何停止在 Git 中跟踪远程分支?

git如何修改本地分支名和远程分支名?

git如何修改本地分支名和远程分支名?

git如何修改本地分支名和远程分支名?

git 本地分支关联远程分支

Git 中删除本地分支和删除远程分支是两回事儿