前言
前两天遇到代码提交不到远程仓库了。查看log,发现不符合提交规范,少一个空格。哎,比较尴尬的是有两次提交都不符合规范。原本想着提交完代码,就下班回家。看来又要被动加班了。最终用git rebase 去解决commit内容,之前很少用到reabase,又重温一下reabse的使用。
实现
git commit --amend
如果我们提交的内容只有最后一次有问题,就比较简单了,git已经帮我提供好了命令,比较简单,借助--amend
的参数就可以实现。
首先,我们在需要修改的commit的控制台下输入
git commit --amend
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mdZHNGNV-1658890673389)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0e819f7514ce4679a1d0dd0db952bcc3~tplv-k3u1fbpfcp-watermark.image?)]
这时候,vi编辑,修改内容,保存就可以了
git reabase
修改commit内容可以使用reabase中的reword
和edit
.
- edit:通过使用命令"edit"替换命令"pick",可以告诉git rebase在应用该提交后停止,以便您可以编辑文件和/或提交消息,修改提交并继续重新定位.
- reword:如果只想编辑提交的提交消息,请将命令"pick"替换为命令"reword".
在这里,我们不需要修改文件的内容,就使用reword
- 找到修改范围,这里可以借助 git log查看提交的commit id, 当然你可以借助一起其它参数,来优化你的显示,这里推荐使用
git log --graph --pretty='%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an %ae>%Creset'
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nmc7QTxA-1658890673390)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d036e93495f643289e76819c671bd729~tplv-k3u1fbpfcp-watermark.image?)]
- 执行
get reabse -i fbf5044
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oqhtx0nW-1658890673392)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/34264c81ee1b43849d5aa7287cdcb466~tplv-k3u1fbpfcp-watermark.image?)]
把需要修改commit内容的pick换成reword
后,退出vi编辑模式,输入 :wq!
- 通过vi修改commit内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FldwQw4l-1658890673392)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5258f13bd714ca8aa27f9d9f500820e~tplv-k3u1fbpfcp-watermark.image?)]
输入 :wq!
,保存退出
- 执行
git rebase --continue
把游离的分支会转成之前的正式分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lFzhKl1k-1658890673393)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3d26a3575f504891a480de3e0b82305d~tplv-k3u1fbpfcp-watermark.image?)]
- 这时候,我们通过git log查看,commit内容已经修改成功
结束语
我们这里用了git rebase 的reword
, 大家遇到问题,可以试试edit
。
如果你觉得该文章不错,不妨
1、点赞,让更多的人也能看到这篇内容
2、关注我,让我们成为长期关系
3、关注公众号「前端有话说」,里面已有多篇原创文章,和开发工具,欢迎各位的关注,第一时间阅读我的文章