【发布时间】:2023-03-15 11:58:02
【问题描述】:
我在 linux 的命令行中使用 Git,而不是作为图形客户端。
我在提交消息中写错了。
如何更改消息?
【问题讨论】:
-
...不过我已经推送了...
我在 linux 的命令行中使用 Git,而不是作为图形客户端。
我在提交消息中写错了。
如何更改消息?
【问题讨论】:
如果它是您从您的仓库提交的最后一个补丁,它将位于您的 git 日志 的顶部。
在这种情况下,只需运行以下命令并再次推送。
git commit --amend
然后,修改您的消息并推送相同的消息。由于您没有修改文件中的任何更改,因此它不应该给出任何错误。
如果某些补丁已经出现在您的顶部。然后你还必须检查合并依赖项。在这种情况下,
git reset --hard 你的提交
运行 git commit --amend
推回去
或
但是你也需要考虑合并依赖。
**
**
可以使用git rebase,比如想修改回commit xyz,运行
$ git rebase --interactive xyz^ 在默认编辑器中,将要修改其提交的行中的“pick”修改为“edit”。进行更改,然后使用之前的相同消息提交它们:
$ git commit -a --amend --no-edit 修改提交,然后
$ git rebase --continue 返回到上一个头部提交。
【讨论】:
如果是最近的提交,你可以这样做:
git commit --amend
这会打开带有最后一条提交消息的编辑器,并允许您编辑该消息。 (如果要清除旧消息并使用新消息,可以使用 -m。)
然后当你推动时,这样做:
git push --force <repository> <branch>
使用 push --force 时要小心。如果其他人将更改推送到同一分支,这些更改将被销毁。
任何已经拉取的人都不会收到错误消息,他们需要通过执行以下操作来更新(假设他们自己没有进行任何更改):
git fetch origin
git reset --hard origin/master # Loses local commits
【讨论】:
要更改最近(未推送)提交的提交消息,您可以简单地使用
git commit --amend -m 'new message'
在过去进一步更改(未推送的)提交的消息:
git rebase -i [COMMIT BEFORE THE FIRST YOU WANT TO EDIT]
【讨论】: