我在提交消息中写错了东西。
我怎样才能更改消息?提交尚未推送。
发布于 2008-10-07 23:50:35
修改最新的提交消息
git commit --amend将打开您的编辑器,允许您更改最近提交的提交消息。此外,您还可以在命令行中使用以下命令直接设置提交消息:
git commit --amend -m "New commit message"…但是,这可能会使多行提交消息或小更正输入起来更加麻烦。
在执行此操作之前,请确保您没有任何工作副本更改,否则它们也会被提交。(未暂存的更改将不会提交。)
更改已推送到远程分支的提交消息
如果您已经将提交推送到远程分支,那么在本地修改提交之后(如上所述),您还将使用以下命令执行need to force push the commit:
git push <remote> <branch> --force
# Or
git push <remote> <branch> -f警告:强制推送会用本地one的状态覆盖远程分支。如果远程分支上有您在本地分支中没有的提交,那么您将丢失这些提交。
警告:修改你已经与其他人共享的提交时要小心。修改提交本质上是将它们重写为具有不同的SHA ID,如果其他人拥有你重写的旧提交的副本,这将带来问题。任何拥有旧提交副本的人都需要将他们的工作与新重写的提交同步,这有时可能很困难,因此在尝试重写共享提交历史时,请确保与其他人协调,或者只是避免完全重写共享提交。
执行交互式rebase
另一种选择是使用交互式rebase。这允许您编辑任何想要更新的邮件,即使它不是最新的邮件。
要执行Git压缩,请执行以下步骤:
// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n压缩提交后-选择用于编辑消息的e/r:

关于交互式rebase的重要说明
当您使用git rebase -i HEAD~n时,可能会有比n个提交更多的提交()。Git将“收集”最近n个提交中的所有提交,如果在该范围内的某个地方存在合并,您也会看到所有提交,因此结果将是n+。
小贴士:
如果您必须为多个分支执行此操作,并且在修改内容时可能会遇到冲突,请设置git rerere并让Git自动为您解决这些冲突。
文档
发布于 2010-02-08 12:26:11
git commit --amend -m "your new message"发布于 2008-10-07 19:52:22
如果您要修复的提交不是最新的提交:
git rebase --interactive $parent_of_flawed_commit如果你想修复几个有缺陷的提交,请传递其中最老的一个的父级。
1. Change `pick` to `reword` (or on old versions of Git, to `edit`) in front of any commits you want to fix.
2. Once you save, Git will replay the listed commits.
1. Change the commit in any way you like.
2. `git commit --amend`
3. `git rebase --continue`
这个序列的大部分内容将在您执行过程中通过各种命令的输出向您解释。这非常简单;你不需要记住它--只要记住git rebase --interactive可以让你纠正提交,无论它们是在多长时间之前。
请注意,您不希望更改已经推送的提交。也许你是这样做的,但在这种情况下,你将不得不非常小心地与可能拉出你的提交并在其上完成工作的每个人进行沟通。
https://stackoverflow.com/questions/179123
复制相似问题