背景:git 中有两条分支 dev,master,平时在dev分支中开发,同一个需求/BUG有时候会在dev分支上产生很多次commit,如果我们直接merge到master分支上就会在commit history中产生特别多的commit记录,为了简略美化提交到master中的同一个需求/BUG的commit只有一个同时保留author的信息
1、切换到dev分支
本地的dev分支已经提交了多次commit到远程的dev分支
git checkout dev
2、查看提交的log
git log
3、切换到master rebase(变基) 版
git rebase -i master
3.1 会进入编辑文本界面,会看见多条pick记录
Tips:一个小技巧,全量替换pick:
:%s/pick/squash/g
3.2 点击 i 进入编辑模式,保留第一个pick其他pick改成squash
3.3 保存
:wq
4、切换到master分支
git checkout master
5、使用squash 合并dev到master
git merge --squash dev
6、提交commit
git commit -m '提交后显示的就只有这一个message信息到master了'
7、推到远程分支
git push origin master