先查看下当前分支的commit信息
git log --graph
commit信息如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FNklf5Jp-1577089591236)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1001)]](https://i-blog.csdnimg.cn/blog_migrate/17a3e96afcd80348c382bd5dbd8caf20.png)
这里将commit ID 为e7dc4b3debab6c61e7a190f96df57662f666d538和db35f24346b83018368daebd9f93ba1dc85c4448合并成一个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)]](https://i-blog.csdnimg.cn/blog_migrate/db7b091b9233f4f1573e8780c101d6f2.png)
修改操作
然后发现这里并没有e7dc4b3debab6c61e7a190f96df57662f666d538这个commit,所以将这个commitId添加到这个里面,然后将db35f24346b83018368daebd9f93ba1dc85c4448这个commit 移动到e7dc4b3debab6c61e7a190f96df57662f666d538的下面,并将其操作修改为s或者squash.
注意:移动完以后,要将之前的
db35f24346b83018368daebd9f93ba1dc85c4448删除
修改完以后如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVgS0KJ1-1577089591238)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1003)]](https://i-blog.csdnimg.cn/blog_migrate/b3f042ece841384e6182af2f4467d762.png)
保存以后发现有如下提示信息:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfW2o4ZD-1577089591238)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1004)]](https://i-blog.csdnimg.cn/blog_migrate/9b7c19a7d0ee5f841fb6fd188ad37479.png)
查看 git 状态
查看下此时git的状态
git status
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6pdTE9mn-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1005)]](https://i-blog.csdnimg.cn/blog_migrate/c1588aa1397a853101d631d43fceb29a.png)
继续git rebase
发现此时要继续合并,需要命令:
git rebase --continue
然后就到了squash界面。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B19ZTOAz-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1006)]](https://i-blog.csdnimg.cn/blog_migrate/de3fa5d16230eaffd901032fde2d499a.png)
在这里再增加一些 commit 消息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmJX8k7H-1577089591239)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1007)]](https://i-blog.csdnimg.cn/blog_migrate/0d946af9ecdc511ed3c5533c23a56f69.png)
保存后提示操作成功!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cxtJrtdn-1577089591240)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1008)]](https://i-blog.csdnimg.cn/blog_migrate/2e76f21f13c7f1b2b587124fe0641c93.png)
验证是否操作成功
执行命令
git log --graph
发现操作成功
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eIp7UNlG-1577089591240)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1009)]](https://i-blog.csdnimg.cn/blog_migrate/f31a435ef5e851feb7cb28e5ac1ba629.png)
注意:这里是模仿
e7dc4b3debab6c61e7a190f96df57662f666d538是最后一个commit Id 的操作,其实这里可以在使用git rebase -i commitId时,commitID 可以取e7dc4b3debab6c61e7a190f96df57662f666d538的父级commitID,这样就可以不用在rebase的交互式页中写e7dc4b3debab6c61e7a190f96df57662f666d538而是直接移动和修改db35f24346b83018368daebd9f93ba1dc85c4448就可以了。
Git技巧:合并连续多个commit
这篇博客介绍了如何使用Git将连续的几个commit合并成一个。通过查看commit信息,使用git rebase进入交互式修改模式,移动commit并修改操作,然后继续rebase,最后验证合并操作的成功。该过程涉及对commit id的掌握和交互式窗口的操作。
750

被折叠的 条评论
为什么被折叠?



