一共2种方法,方法二比较简单就不演示了。
rebase
- git log查看需要合并哪些commit
- git rebase -i XXX(commit的ID,基于XXX之后的所有commit要合并)
- 编辑界面中,保留一个pick,其他改为s,然后保存退出。
- 编辑commit message界面中,不需要的信息#注释,然后保存退出。
- 提交
reset
- git log查看不需要合并的最后一个commit id
- git reset XXX(回退到该commit,即不需要合并的最后一个commit)
- log中所有需要合并的commit 已被去掉,并且这些commit的修改没有保存,于是git add . 把所有修改加入commit。
- git commit提交即可
下面演示rebase操作
首先 git log查看需要合并的log,我们要合并最新3个。所以目标commit id是7af1e4af.

于是执行,git rebase -i 7af1e4af。我们想把前2次commit合并到最后一次当中,所以最后一个为pick,其他改为s。

然后保存,退出。然后进入commit message编辑界面。

保留你需要的commit message,其他所有信息用#注释。保存退出。
git log查看结果,符合我们的预期,push即可,如果不行请git push -f。

下面看看新提交的内容,确实是合并了3次提交。

网友评论