关于linux:在命令行Git中编辑不正确的提交消息

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--继续返回上一个头提交。