本地分支处理问题的过程当中通常都是commit在本地分支,当验证完毕后就须要merge到baseline上。git
在不懂merge的--squash这个参数前,我通常是这么操做的:服务器
1.在本地分支"abc"上经过屡次commit把问题修复;post
2.repo sync一把,同步最新baselien到本地,这时也会自动从"abc"跳到"no branch"上,.net
这个"no branch"就是服务器的最新代码。get
3.Git log,记下最新代码分支的commit 号(即哈希值),假设为:sd55fa65ds54af。同步
4.在刚才的"no branch"上执行git merge “abc”,把全部"abc"分支上的commit所有合到"no branch"上it
5.这时候再git log查看下,发现多了许多以前commit的记录,这些记录有时候很琐碎,不必加到baseline上,class
因此我须要git reset --soft sd55fa65ds54af回退一下,而后再git commit -m添加新的message。word
6.而后再git pushdi
当有了--squash参数后,五、6两步能够省去大部分操做,以下:
4.git merge --squash abc
5.git commit -m添加message
直接OK!