日常開發(fā)中,我們?yōu)榱舜a安全起見豁陆,經(jīng)常會(huì)做完一點(diǎn)需求就進(jìn)行一次commit柑爸。如果所做的需求比較復(fù)雜,可能會(huì)產(chǎn)生很多的commit盒音。等需求開發(fā)完之后表鳍,想往主分支合并,或者讓別人進(jìn)行codeReview祥诽,commit次數(shù)太多看著就很麻煩譬圣,并且作為主分支也不想要這么多commit。所以學(xué)會(huì)將多個(gè)commit合并為一個(gè)節(jié)點(diǎn)就很有必要雄坪。以下將介紹兩種方法實(shí)現(xiàn)多個(gè)commit節(jié)點(diǎn)合并為一個(gè)節(jié)點(diǎn)厘熟。比如我想把紅框里三次提交合并成一個(gè)節(jié)點(diǎn)。
一维哈、壓縮提交
1.jpg
1.使用git rebase 命令,以下兩種都可以
a. git rebase -i lastCommitID
注意這里的commitId 是倒數(shù)第四次的提交
git rebase -i b7d113e6
b. git rebase -i HEAD~3
3就是從最后一次開始倒數(shù)的次數(shù)
2.命令編輯
a.輸入命令 vi 绳姨,進(jìn)行編輯
WeChat7fd61bf4d7eb38d601da6fc81c2bf588.png
b.當(dāng)下面藍(lán)色框?yàn)?INSERT 時(shí),要把上面兩個(gè)紅色框 ‘pick’ 改為‘s’,表示第三次提交合并入第二次阔挠,第二次提交合并入第一次飘庄。
修改后如圖:
WeChat37aa3aa7a0ba551122340593cda33a05.png
c.按 ESC 鍵, 然后按'shift'+':' 购撼,接著按 wq,回車退出竭宰。
3.修改提交記錄(這個(gè)可修改也可不修改)
WeChat1e057380fab5d2326cb1fb019bf19410.png
由于是把后面的提交合并到第一次提交里空郊。所以可以修改第一次提交信息紅色區(qū)域,改為你想要的提交信息切揭。比如“完成合并多次提交功能”
至此狞甚,將多次commit合并為一次commit完成。再次查看git 記錄:
WeChat01829b03fb4de4d5cf389fb39c8a77cf.png
二廓旬、壓縮合并
比如我們在某個(gè)feature分支開發(fā)了一個(gè)功能哼审,要合并入develop分支時(shí)。這個(gè)feature分支上有很多提交記錄,而develop上并不需要展示某個(gè)feature上那么復(fù)雜的提交記錄孕豹。這個(gè)時(shí)候就要用到壓縮合并涩盾。
比如我在feature分支有了三次提交記錄
WeChate118cc70b574c6bf332057c90a90e059.png
此時(shí)我已經(jīng)feature完成了功能,要合并入develop分支励背,但為了使develop分支不顯示這么多節(jié)點(diǎn)春霍,我們要開始以下步驟
1.使用壓縮合并分支的名利
git merge <branch> --squash
2. 然后 git add . ,再git commit -m '提交信息'
至此,我們完成壓縮一個(gè)分支合并到主分支功能叶眉,如圖
WeChata93df4da62daf2cb1f3060c96e425bc6.png
通過git log -p commitID 址儒,可以看到這次壓縮合并的所有提交信息。