原文作者:我輩李想
版權(quán)聲明:文章原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)務(wù)必加上原文超鏈接、作者信息和本聲明。
前言
在開發(fā)階段,由于我們會(huì)頻繁的修改代碼,會(huì)存在多次提交同一個(gè)修改,如果我們不合并提交,在于其他人代碼合并時(shí),會(huì)存在大量的commit提交記錄,不利于代碼版本。主要用過兩個(gè)主要命令,分別是git rebase 和git reset。
一、git rebase合并
- 切換分支
git branch
git checkout <分支名稱>
-
檢查代碼是否干凈
如果不進(jìn)行這一步,后邊合并時(shí)將報(bào)錯(cuò)以下錯(cuò)誤提示,可先用git status 查看是否有需要提交的文件,沒有的話就用git stash -
查看commit提交日志,可以q退出
git log --oneline
- 合并分支
這里的 n 表示最近的 n 個(gè)提交數(shù)量。如果想要合并所有的提交,則可以省略該參數(shù)。我們這里取2
git rebase -i HEAD~n
git rebase會(huì)打開一個(gè)vim文本編輯器(需要會(huì)修改保存和退出),顯示了最近的 n 個(gè)提交記錄。每個(gè)提交前面都有一個(gè) pick 關(guān)鍵字,表示保留該提交。若要合并兩個(gè)相鄰的提交,只需刪除第二個(gè)提交之前的 pick 關(guān)鍵字,改為 squash 或 s。同樣,若要合并更多的提交,只需按照上述操作修改對(duì)應(yīng)的提交行。
-
修改狀態(tài)
詳細(xì)查看第三步和第四部的截圖,a463bad是最后一次提交,72615de是倒數(shù)第二次提交,我們的需求就是將a463bad合并至72615de,可進(jìn)行如下修改。 -
確認(rèn)
Esc如果無法退出到保存,可以Esc+鼠標(biāo)左鍵。
wq保存并退出后,需要查看message,如果不想改可以繼續(xù)wq
這里我們可以跟之前圖片對(duì)照,可以發(fā)現(xiàn)1d6494d是合并2次commit的新提交,afc23f7是原來的倒數(shù)第三個(gè)提交。 -
提交到遠(yuǎn)程倉庫
git push -f
二、git reset合并
git reset的本意是版本回退,回退時(shí)可以選擇保留commit提交。我們基于git reset的作用,結(jié)合新建分支,可以實(shí)現(xiàn)多次commit提交的合并。這個(gè)不需要vim編輯,很少有沖突。文章來源:http://www.zghlxwxcb.cn/news/detail-829808.html
- 基于現(xiàn)在的banch新建分支
- 在新分支中打開git log
- 選擇一個(gè)想要合并的版本進(jìn)行reset
- 重新查看push內(nèi)容,進(jìn)行commit提交,這次提交將合并所有,推送至遠(yuǎn)程新分支
- 如有需要,現(xiàn)在可以刪除舊分支使用新分支
文章來源地址http://www.zghlxwxcb.cn/news/detail-829808.html
到了這里,關(guān)于【Git】合并多次commit提交的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!