Git push error: dst refspec 0.1.0 matches more than one

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 '[email protected]: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的时候应当使用不同的名称,尽量避免重名。

你可能感兴趣的:(Git push error: dst refspec 0.1.0 matches more than one)