修改发布的 GitHub 上已连接的提交

48

如何在 github 发布中更改关联的提交? Release

我想将其更改为较早的提交,因为我在创建发布之后才进行了一些提交 (提交到 0.9 版本之后)。

1个回答

61

当您考虑GitHub API 用于创建发布 时,您会发现发布需要:

  • 一个标签
  • 由该标签引用的提交

因此,您需要移动您的标签(首先在本地移动,然后将其推送到GitHub仓库)

git tag -f -a <tagname> [<commit> | <object>]
# or, to avoid an editor
git tag -m "tag message" -f -a <tagname> [<commit> | <object>]

git push -f <remotename> refs/tags/<tagname>

例如:

git tag -m "moving tag to new commit" -f -a my_tag [commit hash]
git push -f origin refs/tags/my_tag

然后查看是否足以更新发布。
(参见“如何使用Git将标签推送到远程存储库?”)

如果不行,您可能需要删除该发布,并在相同的标签上重新创建它(这将引用新提交)。


执行此操作后,如果收到错误消息 would clobber existing tag,则需要使用 git fetch --tags -f 同步本地标签和远程标签,然后推送新的提交。


2
我在发布之前完成了第一行,但它没有起作用。第二行修复了它 :) - Zoker
在第一个命令中,你如何指定提交 ID?我的提交 ID 是:10a4ff2。那么我的命令应该是什么?git tag -f -a v1.2.0 ...???... - Parth
1
@ParthTamane 只需执行 git tag -f -a v1.2.0 10a4ff2,如 https://git-scm.com/book/en/v2/Git-Basics-Tagging#_tagging_later 所示。 - VonC
@Sam 当然,我已经相应地编辑了答案。你也可以直接编辑它:我会审核并批准您的编辑。 - VonC
1
@Gangula 使用 -m 运行 (git tag -m "标签信息" -f -a <标签名> [<提交记录> | <对象>]) 应该足以避免编辑器部分。 - VonC
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接