如何无缝修改历史 Git 提交:轻松更改提交日志并更新远程仓库

397 阅读3分钟

本文介绍了如何修改 Git 提交历史中的提交信息。通过交互式变基(git rebase -i),选择需要修改的提交,使用 git commit --amend 修改提交日志,完成后继续变基并强制推送更新到远程仓库。注意,强制推送会覆盖远程历史,应与团队沟通以避免影响他人工作。

需求说明

根据要求,需要修改历史提交的日志。具体而言,将提交信息从 feat:新增 feeds 修改为 feat: 新增 feeds 公共组件。

实现流程图

image.png

进行交互式变基

确定修改范围

首先确定你需要进行交互式变基的提交范围。如果 7684ba8d 是最近的提交之一,你可以选择最近的 n 个提交。假设 7684ba8d 是你最近的 5 个提交之一:

git rebase -i HEAD~5

这将会列出最近 5 个提交的列表,其中包括 7684ba8d

选择要修改的提交

pick 更改为 edit,标记你想要修改的提交:

保存并关闭编辑器。:wq enter

修改提交内容

Git 会暂停在你选择的提交

此时输入 git branch 命令我们可以看到 Git 会暂停在你选择的提交

当变基操作暂停在 7684ba8d 提交时,你可以进行所需的修改。比如,如果你需要修改提交内容或提交信息,可以使用以下命令:

修改提交内容

git commit --amend

这会允许你修改提交内容和提交信息。

完成修改后,保存并关闭编辑器。

继续变基过程

修改完成后,继续变基操作:

git rebase --continue

Git 将继续应用之后的提交。

推送修改到远程仓库

如果你已经将修改推送到远程仓库,你需要强制推送这些更改:

git push --force

注意: 强制推送会覆盖远程分支的历史,这可能会影响其他团队成员的工作。请在推送前与团队沟通。

结果截图

至此 commit message 已修改完成

结语

本文详细介绍了如何使用 Git 的交互式变基功能来修改历史提交中的提交日志。流程包括:首先确定需要修改的提交范围,并通过 git rebase -i 进行交互式变基;然后标记要修改的提交为 edit,使用 git commit --amend 更新提交内容或信息;最后继续变基操作并使用 git push --force 强制推送到远程仓库。

使用 Git 的交互式变基功能,可以对过去的提交进行精确修改,包括更新提交日志。关键步骤包括选择要修改的提交、修改提交内容或信息、继续变基以及强制推送到远程仓库。强制推送需谨慎!务必注意强制推送可能影响其他协作者,因此需要提前沟通。