一共2種方法尸折,方法二比較簡單就不演示了案腺。
rebase
- git log查看需要合并哪些commit
- git rebase -i XXX(commit的ID庆冕,基于XXX之后的所有commit要合并)
- 編輯界面中,保留一個(gè)pick劈榨,其他改為s访递,然后保存退出。
- 編輯commit message界面中鞋既,不需要的信息#注釋力九,然后保存退出。
- 提交
reset
- git log查看不需要合并的最后一個(gè)commit id
- git reset XXX(回退到該commit邑闺,即不需要合并的最后一個(gè)commit)
- log中所有需要合并的commit 已被去掉跌前,并且這些commit的修改沒有保存,于是git add . 把所有修改加入commit陡舅。
- git commit提交即可
下面演示rebase操作
首先 git log查看需要合并的log抵乓,我們要合并最新3個(gè)。所以目標(biāo)commit id是7af1e4af.
1522376678716.jpg
于是執(zhí)行靶衍,git rebase -i 7af1e4af灾炭。我們想把前2次commit合并到最后一次當(dāng)中,所以最后一個(gè)為pick颅眶,其他改為s蜈出。
WX20180330-102514@2x.png
然后保存,退出涛酗。然后進(jìn)入commit message編輯界面铡原。
WX20180330-102551@2x.png
保留你需要的commit message,其他所有信息用#注釋商叹。保存退出燕刻。
git log查看結(jié)果,符合我們的預(yù)期剖笙,push即可卵洗,如果不行請git push -f。
WX20180330-102616@2x.png
下面看看新提交的內(nèi)容弥咪,確實(shí)是合并了3次提交过蹂。
WX20180330-103018@2x.png