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

$ 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分支?


当前回答

Matthew的回答对移除远程树枝很有帮助, 我也欣赏这一解释,

要从您的机器中删除本地分支 : git 分支 - d { local_ branch} (使用 - D 代替强制删除分支而不检查合并状态); 从服务器中删除远程分支 : git 推源 - d {remote_ branch} 。

参考: Git: 删除分支( 本地或远程) 。

其他回答

如果您想要用一个命令来完成这两个步骤, 您可以在 ~ /. 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)。

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

git branch -d <branchname> # Deletes local branch

git push origin :<branchname> # Deletes remote branch

仅删除引用 。 即使该分支实际上被远程删除, 但它的引用仍然存在于您的团队成员所在的本地存储库中 。 这意味着对于其他团队成员来说, 被删除的分支在做 Git 分支 - a 时仍然可见 。

为了解决这个问题,你的团队成员可以使用

git remote prune <repository>

这是典型的 Git 远程纯素来源 。

删除本地端 - (正常)

git branch -d my_branch

如果分行处于调整/合并的进度中,且未正确完成,这意味着您将会出错, 重设/ 计量在进行中, 因此在这种情况下, 您将无法删除分行 。

所以要么你需要解决重置/合并问题。 否则,你可以通过使用, 强制删除,

git branch -D my_branch

要删除远程 :

git push --delete origin my_branch

您可以使用 :

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

图形代表:

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

$ 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 分支, 请使用此命令先删除本地分支 :

git branch -d example

(此处为分支名称 。)

在此之后, 使用此命令删除远程分支 :

git push origin :example