如何删除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