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