"Updates were rejected because the tag already exists" 尝试推入 SourceTree 时
"Updates were rejected because the tag already exists" when attempting to push in SourceTree
尝试通过源代码树推送时,出现以下错误:
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
据我所知,我没有对此标签进行任何更改。我该如何解决这个问题?
如果您没有对要保留的标签进行任何本地更改,那么您可以删除被拒绝的标签,因为它已经存在(在本例中为example_tag
):
- 右键单击标签并选择删除它(请务必取消选中 从所有遥控器中删除标签 复选框)。
- 选择 Fetch 选项(在本地获取并存储所有标签 not 必须启用)。
- 您现在应该拥有刚刚删除的标签,并且尝试 Push 将不再显示该错误消息。
这在 SourceTree 中很常见的原因是因为 推送所有标签 选项默认设置为 on。 (隐藏此错误的另一种方法是取消选中该选项。)
您应该也可以在 git bash 中解决这个问题(单击源代码树 UI 中的“终端”按钮)。类型:
git pull --tags
如果您有冲突的标签,您可以在命令中包含 -f
选项,以使用远程版本覆盖本地冲突标签。
git pull --tags -f
当您确认 git 推送
时,取消选中 UI 底部的 push all tags
确保在按下时取消选中 "Push all tags" 按钮。
git pull --tags
工作得很好,但有时即使使用此命令也会出现错误。示例错误消息:
! [rejected] example_tag -> example_tag (would clobber existing tag)
这个可以用命令解决:git pull --tags -f
-f
代表力.
来源:
在 SourceTree 中,这似乎有效:
- 单击“获取”图标
- 选中“获取所有标签”
- 点击确定
尝试通过源代码树推送时,出现以下错误:
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
据我所知,我没有对此标签进行任何更改。我该如何解决这个问题?
如果您没有对要保留的标签进行任何本地更改,那么您可以删除被拒绝的标签,因为它已经存在(在本例中为example_tag
):
- 右键单击标签并选择删除它(请务必取消选中 从所有遥控器中删除标签 复选框)。
- 选择 Fetch 选项(在本地获取并存储所有标签 not 必须启用)。
- 您现在应该拥有刚刚删除的标签,并且尝试 Push 将不再显示该错误消息。
这在 SourceTree 中很常见的原因是因为 推送所有标签 选项默认设置为 on。 (隐藏此错误的另一种方法是取消选中该选项。)
您应该也可以在 git bash 中解决这个问题(单击源代码树 UI 中的“终端”按钮)。类型:
git pull --tags
如果您有冲突的标签,您可以在命令中包含 -f
选项,以使用远程版本覆盖本地冲突标签。
git pull --tags -f
当您确认 git 推送
时,取消选中 UI 底部的push all tags
确保在按下时取消选中 "Push all tags" 按钮。
git pull --tags
工作得很好,但有时即使使用此命令也会出现错误。示例错误消息:
! [rejected] example_tag -> example_tag (would clobber existing tag)
这个可以用命令解决:git pull --tags -f
-f
代表力.
来源:
在 SourceTree 中,这似乎有效:
- 单击“获取”图标
- 选中“获取所有标签”
- 点击确定