2017-03-13 119 views
1

提交我想更改其消息已被推送,并且在5个提交中间为。有什么方法可以编辑提交消息吗?编辑后发生了什么,当有人已经提交了提交?如何编辑推送Git提交的提交消息

+0

您将创建发散历史,因为如果您更改提交消息,您将获得新的哈希标识该评论以及随后的所有内容。我会首先确保你真的**必须改变这个提交信息,或者如果你能忍受这个错误。 –

+0

[Git:使用git rebase更改已经推送的提交消息]可能的重复(http://stackoverflow.com/questions/42252725/git-change-already-pushed-commit-message-using-git-rebase) –

+0

是一个的答案为你工作?请接受一个。 – Julian

回答

1

认为最好的做法是不要改变已经推出的东西。

但是,您可以使用git rebase -i编辑任何提交,并选择r (reword)作为您想要更改的提交。

如果您之前推过它,您需要用push -f(强制推送)推送它。

您将改变整个树从该提交和转发,所以所有其他已经克隆存储库将需要做一个git pull做得对。如果他们根据当前树进行了更改,那么他们会很难为他们做好准备,所以最好的做法是让每个人都推动他们的更改,“冻结”存储库,然后让他们在推送后再次提取。

1

通常不建议更改已公开提供的提交。当你意识到自己的时候,当其他人已经在其上工作时编辑这样的提交可能会在对方试图发布他们的工作时导致冲突。

话虽如此,git rebase -i HEAD~5将允许您交互重新绑定您的最后五个提交。它会在您的编辑器中打开一个ToDo文件,允许您根据需要重写历史记录。其中,将会有一个reword选项,允许您更改特定提交的提交消息。你只需要将提交前的pick更改为reword并保存文件,git会提示你输入新的提交信息。

请注意,您将创建一个全新的提交,并且如果您想要发布它,则必须使用--force选项进行推送。

3

由于这是标有tortoisegit,我会告诉你,你怎么会在TortoiseGit archieve这个

  1. 打开底垫:Rebase

  2. 变基到例如主并选择'编辑'Edit

  3. '开始rebase'并编辑消息。之后按'ammend'。 enter image description here

+0

也许这很容易从日志对话框 – MrTux

+0

开始rebase即使这个错误提交已经在源代码中,并且其他人已经拉出来了吗?当其他人拉编辑的提交时,它的行为如何? – Ronald

+0

是的,因为你可以用git做所有事情,但其他人会有不好的时间。不建议 – Julian