Git多个commit合并成一个【中间提交合并 尾部提交合并】
尾部提交合并
將msg B,msg C,msg D這3個(gè)commit合并成1個(gè)commit
1 查看當(dāng)前的提交信息
執(zhí)行命令:git log,可以查看當(dāng)前的一些提交信息 msg A,msg B,msg C,msg D。
2 合并多個(gè)commit
git rebase -i [startpoint] [endpoint] 其中-i的意思是--interactive,即彈出交互式的界面讓用戶編輯完成合并操作, [startpoint] [endpoint]則指定了一個(gè)編輯區(qū)間, 如果不指定[endpoint],則該區(qū)間的終點(diǎn)默認(rèn)是當(dāng)前分支HEAD所指向的commit (注:該區(qū)間指定的是一個(gè)前開(kāi)后閉的區(qū)間)。git rebase -i commit_id1 commit_id?
這里的commit_id是待合并的多個(gè)commit之前的那個(gè)commit ID,這里也就是msg A的commit ID。
在我這里也就是執(zhí)行命令:git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4,
執(zhí)行完命令后就進(jìn)入到vi的編輯模式:
?
?上圖中,pick表示使用當(dāng)前的commit,squash表示這個(gè)commit會(huì)被合并到前一個(gè)commit。
我們這里需要將msg C,msg D合并到msg B中,因?yàn)閙sg B是最靠近msg A的,因此這里選擇將msg C,msg D合并到msg B中。
在鍵盤上敲i鍵進(jìn)入insert模式,然后將msg C,msg D前面的pick修改成squash:
修改完成后,按esc鍵,冒號(hào),輸入wq進(jìn)行保存。
之后會(huì)繼續(xù)跳轉(zhuǎn)到commit message 的編輯界面:
將上圖中畫線的內(nèi)容刪掉或者注釋,然后寫一個(gè)新的commit信息作為這3個(gè)commit的log信息,
我這里的新的信息為:msg B, msg C, msg D,如下圖所示:
然后保存退出,就會(huì)跳轉(zhuǎn)到最初的命令界面:
?Successfully表示操作成功。
3、查看新的commit信息
執(zhí)行命令:git log,查看當(dāng)前的commit信息:成功合成了
?中間提交合并
和尾部的類似,就是不想合并的commit前面寫pick即可!
總結(jié)
以上是生活随笔為你收集整理的Git多个commit合并成一个【中间提交合并 尾部提交合并】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 雪橇犬(说一说雪橇犬的简介)
- 下一篇: Go之JWT详解