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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,717评论 4 54
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,791评论 1 17
  • 今天在微博上看到一个手工糖果的视频,一时没忍住便在天猫上搜索了一番,嘿嘿,还真有。 哎呀呀,要是有机会可以去学习一...
    梨梨安阅读 178评论 0 0
  • 问题:寻找到N个点距离和最小的点 思路:
    Jlan阅读 190评论 0 2