我正在尝试将一个新的本地分支
product-0.2
推送到远程,那里已经有一个同名的标签(但分支本身不存在)
git push -v --tags --set-upstream origin product-0.2:product-0.2
Pushing to https://****@github.com/mycompany/product.git
error: src refspec product-0.2 matches more than one.
error: failed to push some refs to 'https://****@github.com/mycompany/product.git'
同:
git push origin product-0.2:/refs/heads/product-0.2
虽然相反的方法也有效,例如创建一个分支
product-0.1
,提交它,然后应用标签 product-0.1
。
有些人通过在本地删除冲突的标签,然后推送分支,然后检索远程标签来解决此问题,但这似乎很麻烦且容易出错。
如何以最小的麻烦创建我的分支?
感谢您的意见
以下命令应该有效。
git push origin refs/heads/product-0.2:refs/heads/product-0.2
验证哪些标签与您的分支关联:
git tag
就我而言,我有一个与分支同名的标签。删除它有效:
git tag -d [tag-name]
如果您尝试推送与分支同名的tag:
git push origin tag myTag
今天早上我试图推送到规范存储库并收到以下错误:
$ git push origin master
error: src refspec master matches more than one.
error: failed to push some refs to 'ssh://user@host/srv/git/repo'
发生这种情况是因为我不小心在本地创建了主标签:
$ git tag
master
tag1
tag2
tag3
tag4
一旦我在本地删除了这个标签:
git tag -d master
我又能够推动了。
更改名称。
无论您是本地还是远程,只需更改名称即可。
标签和分支在 git 中本质上是相同的:它们代表指向提交的指针。不同之处在于分支指针在提交时前进,而标记保持静态。
但是,您可以在分支或标签上执行
git checkout
。你为什么要和这些重复的名字打架呢?改变它们。
失败了:
git push $origin $branch:$branch
虽然这对我有用:
git checkout $branch
git push $origin HEAD:$branch
如果您使用源代码树,请按照以下步骤操作。
再次尝试推送您的更改。现在这可以工作了。
我们的团队需要将本地分支推送到具有相同名称的 TAG 的存储库。
发生这种情况是因为,ARGO需要部署moodle应用程序,并且不支持构建 直接子模块,所以当我们确实需要一个分支时,另一个团队创建了一个标签。
步骤:
出现错误:
错误:src refspec alt_v1.2.2 匹配多个 错误:无法将一些参考推送到“https://gitlab.com/SOME_URL.git”
解决方案:
问题解决了!
如果您有同名的标签和分支,并且您尝试在没有标签和分支的情况下推送它们,也可能会发生这种情况。当然,GIT会很困惑。
这是一个错误。 如果存在同名标签,则无法浏览分支。