git 修改已经提交的 commit
对于已经 git commit,但还未 git push 到远程仓库的提交信息进行修改。主要分为如下两类
一、 对于刚刚提交的信息进行修改,此时修改的commit为最后一次提交的内容:
可修改提交的message 和 author,如修改下图所提交的信息和作者
# 1. 只修改提交的 message,如将已提交的message修改为 "B01"
git commit --amend --message="B01"
# 2. 只修改提交的 author 信息,如将author设置为 "Jeff <Jeff@163.com>" ,之后会进入到 vim编辑message页面(加 --no-edit 则不会进入vim)
git commit --amend --author="Jeff <Jeff@163.com>" --no-edit
# 3. 一条命令行来同时修改已提交的author 和 message
git commit --amend --author="Jeffxu <Jeffxu@163.com>" --amend --message="A02"
二、修改历史多次提交的 commit 信息
可以使用 git rebase -i
命令来对多次提交的历史 commit 内容进行修改。
如修改下图中 "A02"~"A05" 这四次commit的信息。
git rebase -i
将以Vim编辑器来显示所有已经 commit ,但还未 push 到远程仓库中的内容,如下图中"pick ...." 所对应的四条
- 将需要修改的那条 commit 所对应的 "pick" 修改为 "edit",保存并退出Vim编辑器,修改后如下图所示:
- 执行
git commit --amend --author="<author info>"
或git commit --amend --message="<edit message>"
来修改对应的author 或者 message。与最上面修改最后一次commit方式类似。
# 1. 只是修改author信息,随后会进入到编辑message的页面,如不需要修改message,可直接退出vim编辑器(或末尾加 --no-edit)
git commit --amend --author="<author info>" --no-edit
# 2. 只是修改message信息
git commit --amend --message="<edit message>"
# 3. 同时修改message 和author
git commit --amend --message="<edit message>" --author="<author info>"
- 修改好对应的内容后,执行
git rebase --continue
来完成该笔 commit 的修改,同时会自动进入到下一笔 commit的编辑位置,如下图显示当前修改的是第几笔的commit 内容
- 继续执行类似于步骤3,4的
git commit --amend
和git rebase --continue
指令来修改对应的内容,直到所有的 commit全部修改完成。 - 可以执行 skip 跳过当前的commit修改, abort 放弃所有的修改,包含之前的修改
# 1. 跳过对当前的这笔 commit 进行修改
git rebase --skip
# 2. 放弃对所有 commit的修改,之前已完成修改的内容也全部会被丢弃
git rebase --abort
【参考资料】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!