尝试通过源树推送时,出现以下错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master
Pushing to https://user@github.com/repo.git
To https://user@github.com/repo.git
= [up to date] master -> master
...
! [rejected] example_tag -> example_tag (already exists)
updating local tracking ref 'refs/remotes/origin/master'
error: failed to push some refs to 'https://user@github.com/repo.git'
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above
据我所知,我没有对此标记进行任何更改。我该如何解决这个问题?
答案 0 :(得分:162)
你也应该能够在git bash中解决这个问题(点击Source Tree UI中的“Terminal”按钮)。类型:
git pull --tags
答案 1 :(得分:98)
如果您尚未对要保留的代码进行任何本地更改,则可以删除因已存在而被拒绝的代码 ({{1在这种情况下):
这在SourceTree中很常见的原因是默认情况下推送所有标记选项设置为 。 (隐藏此错误的另一种方法是取消选中该选项。)
答案 2 :(得分:13)
确认您的git push后,取消选中UI底部的push all tags
答案 3 :(得分:8)
答案 4 :(得分:8)
git pull --tags
确实运行良好,但是有时即使使用此命令也会出现错误。错误消息示例:
! [rejected] example_tag -> example_tag (would clobber existing tag)
这可以通过以下命令解决:git pull --tags -f
来源:
答案 5 :(得分:0)
是的,确实,在push --tags
之前先拉出标签。解决了我的问题。
答案 6 :(得分:0)
在SourceTree中,这似乎起作用:
答案 7 :(得分:-2)
我通过以下方式解决了 SourceTree 上的问题: