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

时间:2014-07-08 08:26:47

标签: linux git

我在Linux的命令行中使用Git而不是图形客户端。

我在提交消息中写错了。

如何更改讯息?

3 个答案:

答案 0 :(得分:3)

如果是最近的提交,您只需执行此操作:

git commit --amend

这会使编辑器显示最后一次提交消息,并允许您编辑消息。 (如果要删除旧消息并使用新消息,可以使用-m。)

然后当你推动时,执行此操作:

git push --force <repository> <branch>

使用push -force时要小心。如果其他人将更改推送到同一分支,那么这些更改将被销毁。

任何已经撤消的人都不会收到错误消息,他们需要通过这样的方式更新(假设他们自己没有做任何更改):

git fetch origin
git reset --hard origin/master # Loses local commits

答案 1 :(得分:2)

要更改最近(未删除)提交的提交消息,只需使用

即可
git commit --amend -m 'new message'

过去更改(未删除)提交的消息:

git rebase -i [COMMIT BEFORE THE FIRST YOU WANT TO EDIT]

答案 2 :(得分:0)

如果它是您从回购协议提交的最后一个补丁,它将位于 git log 的顶部。

在这种情况下,只需运行以下命令并再次按下该命令。

  

git commit --amend

然后,修改你的消息并推送它。由于您没有修改文件中的任何更改,因此不应该给出任何错误。

如果某些补丁已经出现在你的头上。然后你还必须检查合并依赖项。在这种情况下,

git reset --hard 您的提交

  • 运行 git commit --amend

  • 将其推回

  • git commit --amend -C commit-id
  • 推回来

但是你也需要考虑合并依赖。

**

更好的方法是:

**

你可以使用git rebase,例如,如果你想修改回提交xyz,运行

$ git rebase --interactive xyz ^ 在默认编辑器中,修改&#39;选择&#39;编辑&#39;在您要修改其提交的行中。进行更改,然后使用之前的相同消息提交它们:

$ git commit -a --amend --no-edit 修改提交,然后修改

$ git rebase - 继续 返回上一个头部提交。