Edit an incorrect commit message in command line Git
本问题已经有最佳答案,请猛点这里访问。
我在Linux的命令行中使用git,而不是图形客户机。
我在提交消息中写错了东西。
如何更改消息?
如果是最新的提交,您只需执行以下操作:
1 | git commit --amend |
这将向编辑器显示最后一条提交消息,并允许您编辑该消息。(如果要清除旧邮件并使用新邮件,可以使用-m。)
然后当你推的时候,这样做:
1 | git push --force <repository> <branch> |
。
使用推力时要小心。如果其他人将更改推送到同一个分支,则这些更改将被销毁。
任何已经拉过的人都不会收到错误消息,他们需要通过这样的操作进行更新(假设他们自己没有进行任何更改):
1 2 | git fetch origin git reset --hard origin/master # Loses local commits |
要更改最近(未清除)提交的提交消息,只需使用
1 | git commit --amend -m 'new message' |
要更改过去(未取消)提交的消息,请执行以下操作:
1 | git rebase -i [COMMIT BEFORE THE FIRST YOU WANT TO EDIT] |
号
如果这是您从回购中提交的最后一个补丁,它将位于您的Git日志的顶部。
在这种情况下,只需运行下面的命令并再次推送相同的命令。
git commit --amend
号
然后,修改您的消息并推送相同的消息。由于您没有修改文件中的任何更改,所以不应给出任何错误。
如果你上面已经有补丁了。然后您还必须检查合并依赖项。在这种情况下,
要么重设Git——努力提交
运行git commit--修正
把它往后推
或
- git commit—修正-c commit id
- 把它往后推
但您还需要考虑合并依赖项。
**
最好的方法是:**
例如,可以使用git-rebase,如果要修改回commit-xyz,请运行
$git rebase--交互式XYZ^在默认编辑器中,将要修改其提交的行中的"pick"修改为"edit"。进行更改,然后使用以前的相同消息提交:
$git commit-a—修正—不编辑修改提交,然后
$git rebase--继续返回上一个头提交。