用Git替换远程标签。
用Git替换远程标签。
我在我的“原始”存储库上有一些标签。然后我意识到我需要在其中一个标签上添加一些更改,并将它们推回我的存储库。
是否有一种方法可以一次将现有标签推送到存储库中,还是应该先删除标签?
admin 更改状态以发布 2023年5月21日
所以,如果您需要将git分支(如“master”)上的标记(例如“v0.5”)移动到不同的提交位置,可能是更新的位置,则可以使用-f
选项来使用git tag
:
-f --force Replace an existing tag with the given name (instead of failing)
您可能需要与-a
一起使用-f
来强制创建带注释的标记,而不是非注释的标记。
示例
-
在推送之前删除任何远程标记
git push origin :refs/tags/
或者对于我们的示例:
$ git push origin master :refs/tags/v0.5 To git@github.com:org_name/repo_name.git - [deleted] v0.5
-
将标记替换为引用最新的提交(使用
-f
将保存为git tag -d
局部标记删除步骤)。git tag -fa
或者对于我们的示例:
$ git tag -fa "v0.5" -m "version 0.5" Updated tag 'v0.5' (was f55c93f)
-
将标记推送到远程origin
git push origin --tags
或者对于我们的示例:
$ git push origin master --tags Counting objects: 1, done. Writing objects: 100% (1/1), 196 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To git@github.com:org_name/repo_name.git * [new tag] v0.5 -> v0.5