{"meta":{"title":"更改提交消息","intro":"在本地修改含义不清、不正确或敏感的提交消息，并将更新后的提交推送到 GitHub，其中包括编辑最近提交或较早提交的步骤。","product":"拉取请求","breadcrumbs":[{"href":"/zh/pull-requests","title":"拉取请求"},{"href":"/zh/pull-requests/how-tos","title":"How-tos"},{"href":"/zh/pull-requests/how-tos/commit-changes","title":"提交更改"},{"href":"/zh/pull-requests/how-tos/commit-changes/changing-a-commit-message","title":"更改提交消息"}],"documentType":"article"},"body":"# 更改提交消息\n\n在本地修改含义不清、不正确或敏感的提交消息，并将更新后的提交推送到 GitHub，其中包括编辑最近提交或较早提交的步骤。\n\n## 重写最近的提交消息\n\n更改提交消息会创建新的提交 ID。 如果已推送提交，则必须强制推送重写历史记录。\n\n## 提交尚未推送上线\n\n如果提交仅存在于本地存储库中，请在本地修改提交消息。\n\n1. 在命令行上，导航到包含要修改的提交的仓库。\n\n2. 键入 `git commit --amend` 并按 **Enter**。\n\n3. 在文本编辑器中编辑提交消息，然后保存该提交。\n   * 若要添加共同作者，请将预告片添加到提交。 请参阅“[创建包含多个作者的提交或代表某个组织创建提交](/zh/pull-requests/how-tos/commit-changes/creating-a-commit-with-multiple-authors)”。\n\n   * 若要代表组织创建提交，请将预告片添加到提交。 请参阅“[创建包含多个作者的提交或代表某个组织创建提交](/zh/pull-requests/how-tos/commit-changes/creating-a-commit-with-multiple-authors#creating-a-commit-on-behalf-of-an-organization)”。\n\n4. 将该提交推送到 GitHub.com。\n\n## 修改旧提交或多个提交的消息\n\n如果已推送提交，在重写历史记录之前请谨慎使用。 强制推送可能会干扰那些基于旧提交开展工作的协作者。\n\n### 更改最近一次推送的提交消息\n\n1. 按照[提交尚未推送到远程](#commit-has-not-been-pushed-online)中的步骤修改提交信息。\n2. 强制推送覆盖旧提交。\n\n   ```shell\n   git push --force-with-lease origin EXAMPLE-BRANCH\n   ```\n\n### 更改较早的或多个提交消息\n\n使用交互式变基来更改较早的或多个提交消息。\n\n1. 在命令行上，导航到包含要修改的提交的存储库。\n\n2. 开始对最近的 `n` 次提交进行交互式变基。\n\n   ```shell\n   git rebase -i HEAD~n\n   ```\n\n3. 在提交列表中，在要更改的每条提交消息前，将 `pick` 替换为 `reword`。\n\n   ```shell\n   pick e499d89 Delete CNAME\n   reword 0c39034 Better README\n   reword f7fde4a Change the commit message\n   ```\n\n4. 保存并关闭提交列表文件。\n\n5. 在打开的每个提交消息文件中，输入新消息，然后保存并关闭该文件。\n\n6. 强制推送已重写的历史记录。\n\n   ```shell\n   git push --force-with-lease origin EXAMPLE-BRANCH\n   ```\n\n请参阅 Git 手册中的 [交互模式](https://git-scm.com/docs/git-rebase#_interactive_mode) 。\n\n> \\[!WARNING]\n> 如果提交消息包含敏感信息，强制推送修改后的提交可能无法从 GitHub 中删除原始提交记录。 请联系 通过网站管理员[GitHub支持门户](https://support.github.com) 并提供旧的提交 ID，以便将其从远程存储库中清除。\n\n## 延伸阅读\n\n* [对提交签名](/zh/authentication/managing-commit-signature-verification/signing-commits)"}