先查看下当前分支的commit信息
git log --graph
commit信息如下
这里将commit ID 为e7dc4b3debab6c61e7a190f96df57662f666d538
和db35f24346b83018368daebd9f93ba1dc85c4448
合并成一个commit
操作步骤
根据Commit Id 进入交互式修改
使用命令:
git rebase -i commitId
由于这里e7dc4b3debab6c61e7a190f96df57662f666d538
是比较老的commit,所以这的commitId取e7dc4b3debab6c61e7a190f96df57662f666d538
就可以了。
即:
git rebase -i e7dc4b3debab6c61
弹出交互式窗口:
修改操作
然后发现这里并没有e7dc4b3debab6c61e7a190f96df57662f666d538
这个commit,所以将这个commitId添加到这个里面,然后将db35f24346b83018368daebd9f93ba1dc85c4448
这个commit 移动到e7dc4b3debab6c61e7a190f96df57662f666d538
的下面,并将其操作修改为s
或者squash
.
注意:移动完以后,要将之前的
db35f24346b83018368daebd9f93ba1dc85c4448
删除
修改完以后如下:
保存以后发现有如下提示信息:
查看 git 状态
查看下此时git的状态
git status
继续git rebase
发现此时要继续合并,需要命令:
git rebase --continue
然后就到了squash
界面。
在这里再增加一些 commit 消息
保存后提示操作成功!
验证是否操作成功
执行命令
git log --graph
发现操作成功
注意:这里是模仿
e7dc4b3debab6c61e7a190f96df57662f666d538
是最后一个commit Id 的操作,其实这里可以在使用git rebase -i commitId
时,commitID 可以取e7dc4b3debab6c61e7a190f96df57662f666d538
的父级commitID,这样就可以不用在rebase
的交互式页中写e7dc4b3debab6c61e7a190f96df57662f666d538
而是直接移动和修改db35f24346b83018368daebd9f93ba1dc85c4448
就可以了。