如何删除Git中的远程分支?

我创build了一个分支notmaster来提交以及推动一些改变。 当我完成这个分支时,我将这些修改合并到了master ,并将它们推出,然后删除了本地notmaster

 $ git branch -a * master remotes/origin/master remotes/origin/notmaster 

反正有删除远程非notmaster


来自Ionut的解决scheme更清晰一点:

通常的方法失败了我:

 $ git push origin :notmaster error: dst refspec notmaster matches more than one. 

那是因为我有一个与分支名称相同的标签。 这对我来说是一个糟糕的select,造成了模棱两可。 所以在这种情况下:

 $ git push origin :refs/heads/notmaster 

git push origin :notmaster ,这基本上意味着“不向notmaster remote推送任何东西”。

我遇到过同样的问题。 我有一个分支和一个名为3.2的标签。 这就是为什么它说有不止一个匹配:

 git error: dst refspec 3.2 matches more than one. 

以下是如何删除分支:

 git push origin :heads/3.2 

以下是如何删除标签:

 git push origin :tags/3.2 
 git push origin --delete notmaster 

如果你使用的是Git 1.7.0或更高版本,这将会有所斩获。 在Git 1.7.0之前,你需要使用不直观(但同样有效)的语法:

 git push origin :notmaster 

较旧的语法仍然适用于较新版本的Git,但较新的语法似乎更人性化且更易于记忆。 如果我想删除一个分支,input--delete似乎是自然而然的事情。

从1.7.0发行说明 :

“git push”学习了“git push origin -delete branch”,这是一个“git push origin:branch”的语法糖。

发生这种情况是因为分支和标记的名称相同。 要删除分支,请使用git push origin:refs / heads / branchname要删除标记,请使用git push origin:refs / tags / tagname

这将从远程删除分支和标签。 要从本地删除,可以分别使用git branch -d branchname和git tag -d tagname

删除本地分支:

 git branch -d {branch name} //All changes must be committed first. git branch -D {branch name} //Does not require commit. 

删除有function的分支:

 Delete the local branch first. git push {gitorious push url} :{branch name} 

以下步骤也可以做到这一点:

 $ git fetch --prune --tags $ git push origin :refs/tags/{same-branch-tag-name} $ git push origin :{same-branch-tag-name} $ git push --tags