Git学习笔记7:将间隔的几个commit合并成一个

28 阅读6分钟

先查看下当前分支的commit信息

git log --graph

commit信息如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FNklf5Jp-1577089591236)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1001)]

这里将commit ID 为e7dc4b3debab6c61e7a190f96df57662f666d538db35f24346b83018368daebd9f93ba1dc85c4448合并成一个commit

操作步骤

根据Commit Id 进入交互式修改

使用命令:

git rebase -i commitId

由于这里e7dc4b3debab6c61e7a190f96df57662f666d538是比较老的commit,所以这的commitId取e7dc4b3debab6c61e7a190f96df57662f666d538就可以了。 即:

git rebase -i e7dc4b3debab6c61

弹出交互式窗口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IECIRoqC-1577089591237)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1002)]

修改操作

然后发现这里并没有e7dc4b3debab6c61e7a190f96df57662f666d538这个commit,所以将这个commitId添加到这个里面,然后将db35f24346b83018368daebd9f93ba1dc85c4448这个commit 移动到e7dc4b3debab6c61e7a190f96df57662f666d538的下面,并将其操作修改为s或者squash.

注意:移动完以后,要将之前的 db35f24346b83018368daebd9f93ba1dc85c4448删除

修改完以后如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVgS0KJ1-1577089591238)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1003)]

保存以后发现有如下提示信息: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfW2o4ZD-1577089591238)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1004)]

查看 git 状态

查看下此时git的状态

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6pdTE9mn-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1005)]

继续git rebase

发现此时要继续合并,需要命令:

git rebase --continue

然后就到了squash界面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B19ZTOAz-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1006)]

在这里再增加一些 commit 消息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmJX8k7H-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1007)]

保存后提示操作成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cxtJrtdn-1577089591240)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1008)]

验证是否操作成功

执行命令

git log --graph

发现操作成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eIp7UNlG-1577089591240)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1009)]

注意:这里是模仿e7dc4b3debab6c61e7a190f96df57662f666d538是最后一个commit Id 的操作,其实这里可以在使用git rebase -i commitId时,commitID 可以取 e7dc4b3debab6c61e7a190f96df57662f666d538的父级commitID,这样就可以不用在rebase的交互式页中写e7dc4b3debab6c61e7a190f96df57662f666d538而是直接移动和修改db35f24346b83018368daebd9f93ba1dc85c4448就可以了。