How do I delete a remote branch in Git?
本问题已经有最佳答案,请猛点这里访问。
我创建了一个分支
1 2 3 4 | $ git branch -a * master remotes/origin/master remotes/origin/notmaster |
有没有办法删除远程
更清晰一点,通过Ionut的解决方案:
通常的方法对我来说失败了:
1 2 | $ git push origin :notmaster error: dst refspec notmaster matches more than one. |
那是因为我有一个和分支同名的标签。这对我来说是个糟糕的选择,造成了模棱两可的结果。所以在这种情况下:
1 | $ git push origin :refs/heads/notmaster |
我也有同样的问题。我有一个分支和一个名为3.2的标签。这就是为什么它说有多个匹配:
1 | git error: dst refspec 3.2 matches more than one. |
以下是删除分支的方法:
1 | git push origin :heads/3.2 |
下面是如何删除标签:
1 | git push origin :tags/3.2 |
1 | git push origin --delete notmaster |
如果您使用的是Git 1.7.0或更高版本,这将实现此功能。在Git1.7.0之前,您需要使用不太直观(但同样有效)的语法:
1 | git push origin :notmaster |
较旧的语法在较新版本的Git中仍然有效,但较新的语法似乎更人性化,更容易记忆。如果我想删除一个分支,输入
从1.7.0发行说明:
"git push" learned"git push origin --delete branch", a syntactic sugar for"git push origin :branch".
这是因为分支和标记的名称相同。
从远程使用中删除分支
从远程使用中删除标记
要从本地删除,可以使用以下命令。
以下步骤也可以实现这一技巧:
1 2 3 4 | $ git fetch --prune --tags $ git push origin :refs/tags/{same-branch-tag-name} $ git push origin :{same-branch-tag-name} $ git push --tags |
删除本地分支:
1 2 | git branch -d {branch name} //All changes must be committed first. git branch -D {branch name} //Does not require commit. |
删除gitorious分支:
1 2 | Delete the local branch first. git push {gitorious push url} :{branch name} |