本地分支處理問題的過程當中通常都是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!