场景:当分批次多次提交时,突然发现提交的message不符合规范,想要修改,这时就可以使用了
修改最近一条Commit
如果只是想修最近一条 Commit, 直接使用命令:
git commit --amend
就可以进行修改,命令行会进入vim的界面,让你修改上一次的提交 Message,改好消息,退出即可。然后强制的push(git push origin 分支名 -f)一下。
修改过去若干条 Commit
如果要修改过去若干条 Commit 的 Message,不管改不改最新那一条,都会稍微有点麻烦。
比如我一个需求,提交了三个commit,首先先执行git log查看commit记录:
我想修改第一次提交的message,加上次数
这时候我们需要使用如下命令
git rebase -i 9c8b8a837dc2d831983339924a6eba91ba9a77d3
9c8b8a837dc2d831983339924a6eba91ba9a77d3 为 d79776ccxxx下面的一次log记录,这里没有截出来,文章最后有一个可以看见的截图
进入了Vim界面:
参数说明:
- **pick(p)**:保留该 commit
- **reword(r)**:保留该 commit,但我需要修改该commit的 Message
- **edit(e)**:保留该 commit, 但我要停下来修改该提交(包括修改文件)
- **squash(s)**:将该 commit 和前一个 commit 合并 (多条commit合并为一条)
- **fixup(f)**:将该 commit 和前一个 commit 合并,但我不要保留该提交的注释信息
- **exec(x)**:执行 shell 命令
- **drop(d)**:丢弃这个 commit
按照实际需要去选择命令,我们这里需要的是 reword,用来修改 Message。
记住,这里如果需要改多条记录,将对应的commit id前的pick修改为r即可,这里我只改一条了。
修改完成后(这里无需修改message),按esc,再输入:wq 即可保存并退出。
接着就会来到d79776c的提交页面,编辑message即可
同样的 按esc,再输入:wq 即可保存并退出。
如果修改多条,会依次进入各自commit的提交页面,依次编辑message即可,最后一次编辑完成后,会输出:
Successfully rebased and updated refs/heads/master.
代表rebase成功了,我们再来git log 看下:
别忘记,要git push origin master(你的分支名) -f 哦~
版权归原作者 cj_eryue 所有, 如有侵权,请联系我们删除。