如下,分别创建四个文件,并且add和commit
git init
touch a.txt
git add a.txt
git commit -m "a"
touch b.txt
git add b.txt
git commit -m "b"
touch c.txt
git add c.txt
git commit -m "c"
touch d.txt
git add d.txt
git commit -m "d"
这个时候,已经有了四个提交,我想要合并b和c,如下所示
于是乎,我是用了如下指令
git rebase -i 8426f802623d9fee7bb0b3af228c8b014a033caf 90628f495f62961f3083644c31b9a4cf29f08130
并将c节点的状态由pick改成了squash,以让它和前一个节点合并在一起
然后wq后,修改了comment
git log 查看一下, 最后提交的d节点也没了
没有合并d,你看下当前的文件没有d。rebase基于a那次提交新建了提交,只不过这次提交添加了b和c。d那次提交依然存在,你可以用commit号切换过去。
如果你只是想把b和c合并,d仍然接在后面,可以
然后只squash c那次提交,表示把c合并到b那次提交,保留pick d。
接着会提示你输入新的message作为b&c的合并。