如果我提交的邮件中包含拼写错误或写入了一些愚蠢的内容,GitHub中是否有办法更改提交邮件?
我知道您可以从CLI执行ammend提交事务(它取代之前的提交),但有没有办法只从GitHub.com网站界面编辑提交消息?
答案 0 :(得分: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
#
您想要编辑第三行(引用提交c6d0921
的那一行),以“reword”而不是“pick”开头。保存并退出编辑器后,您会发现自己正好在编辑器中,并在您面前提交了该提交的消息。纠正你的拼写错误,保存并退出,一切都很好。
请注意,如果您已经将这些提交推送到上游仓库,那么执行此操作或执行commit --ammend
是一项危险的业务。这就是为什么没有办法直接在GitHub.com上这样做。如果你想改变你已经推动的提交,那完全是一个单独的事情。 :)
答案 1 :(得分:4)
无法直接在网站上进行此操作。
你可以:
git commit --amend
git push --force origin master
答案 2 :(得分:2)
我们不希望允许人们在网站上执行此操作的主要原因之一是因为它会更改提交的整个结构(基本上只是将其视为更改提交哈希)。这只是你的问题,但是为了与你一起工作的社区,这是一个问题,因为没有其他人会有这样的提交,当他们试图拉动它们时会遇到问题。
这与在您推动后在命令行上执行修改相同,然后强制推送到github.com。除非您需要进行大量额外的沟通,否则通常是工作流程的主要禁忌。