如何修改尚未推送的提交信息?

发布时间 2023-10-06 12:49:36作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=如何修改尚未推送的提交信息?

我在提交信息中写错了东西。

我该如何更改信息?该提交尚未推送。


如何修改最近提交的提交信息

git commit --amend

这将打开您的编辑器,允许您更改最近提交的提交信息。此外,您还可以在命令行中直接设置提交信息:

git commit --amend -m "新的提交信息"

但是,这可能会使多行提交信息或小的更正更难以输入。

确保在执行此操作之前没有 暂存 任何工作区更改,否则它们也会被提交。(未暂存的更改将不会被提交。)

更改已推送到远程分支的提交信息

如果您已经将提交推送到远程分支,那么-在本地(如上所述)修改您的提交后-您还需要强制推送提交

git push <remote> <branch> --force
# 或者
git push <remote> <branch> -f

警告:强制推送将用本地分支的状态覆盖远程分支。如果远程分支上有您本地分支中没有的提交,您将会丢失这些提交。

警告:在与他人共享的提交上编辑时要谨慎。 编辑提交实质上会重写它们以具有不同的SHA ID,如果其他人有旧提交的副本,这会带来问题。如果有人拥有旧提交的副本,他们需要将自己的工作与您重新编写的新提交同步,这有时会很困难,因此在尝试重写共享提交历史时,请确保与他人协调,或者完全避免重写共享提交。


执行交互式变基

另一个选择是使用交互式变基。
这允许您编辑任何您想要更新的消息,即使它不是最新的消息。

要执行Git合并,请按照以下步骤操作:

// n 是您希望编辑的最新提交之前的提交数
git rebase -i HEAD~n

一旦您合并了您的提交 - 选择“e/r”以编辑消息:

屏幕截图显示在编辑提交时

关于交互式变基的重要说明

当您使用git rebase -i HEAD~n时,可能不止有n个提交。Git将“收集”最后n个提交中的所有提交,如果在该范围内有任何合并,您还将看到所有提交,因此结果将是n + .

好的提示:

如果您需要对多个分支执行此操作,并且当修改内容时可能会遇到冲突,请设置git rerere并让Git自动为您解决这些冲突。


文档