温馨提示
该文章距离上次更新已经过去了 1025 天,文章内容可能已经过时。
查看已提交的历史信息
通过 git log 可以查看已提交的历史信息
git log
修改
输入 git commit --amend 进入修改页面
git commit --amend
修改页面:
第一行就是最后一次commit的注释信息,按 i 键进行编辑状态,修改注释信息后按 Esc 之后再按 Shift + : 后再输入 :wq! 保存并退出
如果修改的不是最后一条或者需要同时修改多条
可以使用 git rebase -i HEAD~n 同时修改多条(n为最近的几次commit注释记录)
git rebase -i HEAD~n
比如:输入 git rebase -i HEAD~3,会显示最近3次的commit的信息,会按照提交顺序进行排序,最后一条就是最后一次的提交记录
之后输入i,想要修改哪一个就把哪一个前面的 pick 修改成 edit
例如:想修改倒数第二次和倒数第三次的记录
修改完保存退出之后会显示
之后输入 git commit --amend 就可以修改倒数第二条的commit记录,修改完成之后保存退出
接着输入 git rebase --continue 此时就会看到分支变为master|REBASE-i 2/3,现在就切换到下一条,也就是倒数第二条的commit记录,如果这条也要修改,就再输入 git commit --amend 进行修改,修改完成之后保存退出(如果不需要修改,可以直接输入git rebase --continue进入第三条),接着最输入一次 git rebase --continue,由于我们之前最后一条commit没有将pick改成edit,说明这一条是不需要修改的,所以会直接显示 Successfully rebased and updated detached HEAD. ,到这里commit注释记录就修改结束
提交到远程仓库
强制更新到远程仓库
git push -f remote branch
2023年11月10日更新
如果使用的是 git rebase -i HEAD~n ,在 git rebase --continue 结束之后,提示的是 Successfully rebased and updated refs/heads/branch.
也有可能会提示 Successfully rebased and updated detached HEAD.,可能是因为git版本原因,或者在rebase期间发生了什么错误导致,暂时无法复现
2024年11月03日更新
其实如果只想修改commit说明,使用reword即可,可以看看这篇文章,会更加详细Git如何合并多个commit?
你好,这里出现了分离头指针,还能够push上去吗?
我看到你加了一个 强制参数 -f
目前我也遇到了rebase之后出现分离头指针的情况,但是还没找到原因
会不会是因为git版本的原因,或者在 rebase 期间出现什么错误导致的