1

如果我提交的消息中有错字或写了一些愚蠢的东西,GitHub 中是否有办法更改提交消息?

我知道您可以从 CLI 执行修改提交(替换之前的提交),但是有没有办法从 GitHub.com 站点界面编辑提交消息?

4

3 回答 3

5

如果问题提交不止一次之前,您必须回退到交互式 rebase。例如,如果您注意到三个提交前的拼写错误,您可以输入如下内容:

git rebase -i HEAD~4

然后 rebase 会打开你的默认编辑器,它的视图看起来像这样:

pick c5052cb Updated the workshop instructions
pick 6d6cd60 Upgraded to the plugin 0.6.1
pick c6d0921 Upgraded wrapper to Gradle 1.2
pick 7a111da Upgraded to 0.7 of the Liquibase Gradle Plugin.

# Rebase 097e6b2..7a111da onto 097e6b2
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#

您需要编辑第三行(指 commit 的那一行c6d0921)以“reword”而不是“pick”开头。保存并退出编辑器后,您会发现自己立即回到编辑器中,该提交的消息就在您面前。纠正你的拼写错误,保存并退出,一切都很好。

commit --ammend请注意,如果您已经将这些提交推送到上游存储库,那么这样做或做某事是危险的。这就是为什么无法直接在 GitHub.com 上执行此操作的原因。如果您想更改已经推送的提交,那完全是另一回事。:)

于 2013-08-08T17:12:37.407 回答
4

没有办法直接在网站上进行。

你可以:

git commit --amend
git push --force origin master
于 2013-08-08T16:37:15.263 回答
2

我们不想让人们在网站上执行此操作的主要原因之一是因为它会更改提交的整个结构(基本上只是将其视为更改提交哈希)。当只有你的时候这不是问题,但为了与你一起工作的社区,这是一个问题,因为没有其他人会提交,当他们试图拉动时,他们会遇到问题。

这与在您推送后在命令行上执行修改相同,然后强制推送到 github.com。除非您注意大量额外的沟通,否则通常是工作流程的主要禁忌。

于 2013-08-08T17:32:19.407 回答