我正在尝试将新的本地分支推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'
Run Code Online (Sandbox Code Playgroud)
与:相同:
git push origin product-0.2:/refs/heads/product-0.2
Run Code Online (Sandbox Code Playgroud)
虽然相反的方式有效,例如创建一个分支product-0.1,然后提交它然后应用标记product-0.1.
有些人通过在本地删除冲突标记,然后推送分支,然后检索远程标记来解决这个问题,但它看起来很麻烦且容易出错.
如何以最小的麻烦创建我的分支?
感谢您的输入
ral*_*nja 142
以下命令应该有效.
git push origin refs/heads/product-0.2:refs/heads/product-0.2
Run Code Online (Sandbox Code Playgroud)
eca*_*rol 32
验证与您的分支关联的标记:
git tag
Run Code Online (Sandbox Code Playgroud)
就我而言,我有一个与分支名称相同的标签.删除它有效:
git tag -d [tag-name]
Run Code Online (Sandbox Code Playgroud)
The*_*Saw 17
更改名称.
无论是本地还是远程,只需更改名称即可.
标签和分支在git中基本相同:它们表示提交的指针.不同之处在于分支指针在您提交时前进,而标记保持静态.
但是,您可以git checkout在分支或标记上执行.你为什么要与所有这些翻倍的名字作斗争?改变他们.
我今天早上试图推送到规范的存储库并得到以下错误:
$ 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'
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为我在本地意外创建了主标记:
$ git tag
master
tag1
tag2
tag3
tag4
Run Code Online (Sandbox Code Playgroud)
我在本地删除此标记后:
git tag -d master
Run Code Online (Sandbox Code Playgroud)
我能够再次推动.
如果您尝试推送与分支名称相同的标签:
git push origin tag myTag
Run Code Online (Sandbox Code Playgroud)
这失败了:
git push $origin $branch:$branch
Run Code Online (Sandbox Code Playgroud)
虽然这对我有用:
git checkout $branch
git push $origin HEAD:$branch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63709 次 |
| 最近记录: |