<分区>
我在提交信息中写错了。
如何更改消息?尚未推送提交。
<分区>
我在提交信息中写错了。
如何更改消息?尚未推送提交。
最佳答案
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
警告:强制推送将用本地分支的状态覆盖远程分支。如果远程分支上有您在本地分支中没有的提交,您将丢失这些提交。
警告:修改您已经与其他人共享的提交时要谨慎。修改提交本质上是重写它们以具有不同的 SHA ID,如果其他人有您重写的旧提交的副本,这会带来问题。任何拥有旧提交副本的人都需要将他们的工作与您新重写的提交同步,这有时会很困难,因此在尝试重写共享提交历史时确保与其他人协调,或者避免重写共享提交完全。
另一种选择是使用交互式 rebase 。 这使您可以编辑任何要更新的消息,即使它不是最新的消息。
为了执行 Git squash,请按照以下步骤操作:
// 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
来编辑消息:
当你使用 git rebase -i HEAD~n
时,可以有 更多 的提交。 Git 将“收集”最后 n 个提交中的所有提交,如果在该范围之间的某处存在 merge ,您也会看到所有提交,因此结果将为 n + 。
如果您必须为多个分支执行此操作并且在修改内容时可能会遇到冲突,请设置 git rerere
让 Git 自动为您解决这些冲突。
关于git - 如何修改现有的、未推送的提交消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/179123/