删除远程分支的尝试失败 :

$ 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.

我如何正确删除本地和远程的远程/原产/bugfix分支?


当前回答

如果您有一个标签, 标签名称与遥控器上的分支相同, 这行不通 :

$ 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

其他回答

根据最新文件,使用终端,我们可以以以下方式删除。

删除本地语 :

git branch -D usermanagement

在远程位置删除 :

git push --delete origin usermanagement

我在我的. gitconfig 文件中添加了以下别名。 这样可以删除分支, 不论是否指定分支名称 。 如果没有通过参数, 分支名称默认为当前分支 。

[alias]
    branch-name = rev-parse --abbrev-ref HEAD     

    rm-remote-branch = !"f() { branch=${1-$(git branch-name)}; git push origin :$branch; }; f"
    rm-local-branch = !"f() { branch=${1-$(git branch-name)}; git checkout master; git branch -d $branch; }; f"
    rm-branch-fully = !"f() { branch=${1-$(git branch-name)}; git rm-local-branch $branch; git rm-remote-branch $branch; }; f"

其它许多答案都会导致错误/ 警告。 这个方法比较愚蠢, 虽然您仍然需要 git 分支 - D 分支 - D 分支_ to_ deletete , 如果它没有完全合并到其它分支中, 比如 。

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

如果您删除了远程分支, 不需要远程剪切。 它只用来获取您正在跟踪的仓库中可用的最新远程 。 我观察过 Git 抓取将会添加远程, 而不是移除它们 。 下面的例子说明 Git 远程 Pinene 何时会真正做点什么 :

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

git fetch
git remote prune origin
git branch -r

内容提要

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

注:在大多数情况下,<remote_name>将是来源。

删除本地分处

删除本地分支时使用下列分支之一:

git branch -d <branch_name>
git branch -D <branch_name>

-d 选项是 --delete的别名,它只删除已经完全合并到上游分支的分支。 -D选项是 -- delete-force的别名,它删除分支“不管其合并状态如何”。 [资料来源: man git-branch] As of Git v2.3, git 分支 -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 开始,您也可以使用 - d 选项的 Git 推动作为 -- delette 的别名。 因此, 您安装的 Git 版本将决定您是否需要使用更简单或更难的语法 。

删除远程处[原件:2010年1月5日的答复]

Scott Chacon在《Pro Git》第三章中写道:

删除远程分支 假设您已经用远程分支完成 — — 比如, 您和您的合作者已经完成了一个功能, 并已将其合并到您的远程主要分支( 或您稳定的代码行所在的分支 ) 。 您可以使用非常隐蔽的 usyntatget git 推 [ remotename] 来删除远程分支 : [branch] 。 如果您想要从服务器中删除服务器上的服务器链接分支, 您将运行以下操作 :

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

boom 。 服务器上不再有树枝。 您可能想要在这个页面上下手, 因为您需要这个命令, 您可能会忘记语法 。 记住这个命令的一个方法就是回顾我们稍早一些时段的语法。 如果您离开[ 本地支 部分, 那么您基本上会说 : “ 不要在我身边做任何事情,让它成为[远程支 。 ”

斯科特·查孔说得没错,我想在Stack Overflow上回答这个话题(或几乎是狗耳朵 ) 。

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

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

以传播变化。

删除分支的步骤 :

删除远程分支时:

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 推源 - 删除只删除您的远程分支, 在结尾处添加分支的名称, 这将同时删除并推到远程...

Git 分支 - D, 仅删除本地分支!

-D 代表 --delete --force,它会删除分支,即使它没有合并(force development),但您也可以使用 -d 表示 --delete,它会抛出分支合并状态的错误...

我还创造下面的图像,以显示步骤: