我创建了一个分支notmaster
来提交并推送一些更改.当我完成该分支时,我将更改合并回来master
,将它们推出,然后删除本地notmaster
.
$ git branch -a
* master
remotes/origin/master
remotes/origin/notmaster
Run Code Online (Sandbox Code Playgroud)
无论如何要删除遥控器notmaster
?
通常的方法对我来说失败了:
$ git push origin :notmaster
error: dst refspec notmaster matches more than one.
Run Code Online (Sandbox Code Playgroud)
那是因为我有一个与分支同名的标签.这对我来说是一个糟糕的选择,并造成了模糊性.所以在这种情况下:
$ git push origin :refs/heads/notmaster
Run Code Online (Sandbox Code Playgroud)
Ion*_*tan 56
git push origin :notmaster
,这基本上意味着"不向notmaster遥控器推送".
Ole*_*aev 47
我遇到过同样的问题.我有一个分支和一个名为3.2的标签.这就是它说不止一场比赛的原因:
git error: dst refspec 3.2 matches more than one.
Run Code Online (Sandbox Code Playgroud)
以下是删除分支的方法:
git push origin :heads/3.2
Run Code Online (Sandbox Code Playgroud)
以下是删除标记的方法:
git push origin :tags/3.2
Run Code Online (Sandbox Code Playgroud)
jas*_*lph 15
git push origin --delete notmaster
Run Code Online (Sandbox Code Playgroud)
如果你正在使用Git 1.7.0或更高版本,这将有所帮助.在Git 1.7.0之前,您需要使用不那么直观(但同样有效)的语法:
git push origin :notmaster
Run Code Online (Sandbox Code Playgroud)
较旧的语法仍适用于较新版本的Git,但较新的语法似乎更人性化,更易于记忆.如果我想删除一个分支,打字--delete
似乎是很自然的事情.
"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