Git 删除一个远程分支时报错,如下:
Ricky@TiFX MINGW64 /f/MyProject/juice (master)
$ git push origin --delete 0.1.0
error: dst refspec 0.1.0 matches more than one.
error: failed to push some refs to 'git@github.com:TiFG/juice.git'
出现这个错误的原因是在于远程Git服务器上名称为0.1.0的有两个对象:一个是tag,一个是分支;也就是说tag分支和branch分支同名了,在执行 git push origin --delete 0.1.0
这个命令时Git服务器不知道要删除哪个。
解决办法
解决办法自然是明确告诉Git服务器要删除的是tag 还是 分支。
1、删除分支
删除名称为0.1.0分支:
git push origin :refs/heads/0.1.0
命令行执行如下:
Ricky@TiFX MINGW64 /f/MyProject/juice (master)
$ git push origin :refs/heads/0.1.0
To github.com:TiFG/juice.git
- [deleted] 0.1.0
2、删除tag
删除名称为0.1.0 的tag
git push origin :refs/tags/0.1.0
日常开发中,在命名分支和tag的时候应当使用不同的名称,尽量避免重名。