git使用与远程标签相同的名称推送本地分支
我试图把一个新的本地分支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
尽pipe其他方式工作,例如创build一个分支product-0.1
,承诺,然后应用标签product-0.1
。
有些人通过在本地删除冲突标签来解决这个问题,然后推送分支,然后检索远程标签,但是看起来很麻烦并且容易出错。
我怎样才能创build我的分支最小的烦恼?
感谢您的input
以下命令应该工作。
git push origin refs/heads/product-0.2:refs/heads/product-0.2
更改名称。 无论是在本地还是远程执行,只需更改名称即可。 标签和分支在git中基本上是一样的:它们表示一个提交的指针。 不同之处在于分支指针在提交时会提前,而标签保持静态。 但是,您可以在分支或标签上执行git checkout
出。 你为什么要用这些翻倍的名字来争取? 改变他们。
validation哪些标签与您的分支相关联:
git tag
在我的情况下,我有一个与分支名称相同的标签。 删除它的工作:
git tag -d [tag-name]
我正在试图推动到今天上午的规范库,并得到以下错误:
$ 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'
这是因为我不小心在本地创build了一个主标签:
$ git tag master tag1 tag2 tag3 tag4
一旦我在本地删除了这个标签:
git tag -d master
我能够再次推动。
这失败了:
git push $origin $branch:$branch
虽然这对我工作:
git checkout $branch git push $origin HEAD:$branch