Git (八):壓縮commit提交記錄
這里介紹如何合并commit提交記錄?
abstract.png 實(shí)踐
figure 1.png
figure 2.png
figure 3.png
figure 4.png
abstract.png 實(shí)踐
對于下述提交記錄,這里期望將最新的4次commit記錄合并為一個
figure 1.png
使用git rebase命令的i選項(xiàng)啟動交互式變基,選定包含HEAD(當(dāng)前分支最新提交)在內(nèi)的4次最新的提交。這將打開一個vim編輯器。其會列出相應(yīng)的commit,同時每個commit前都有一個命令(默認(rèn)為pick)
git rebase -i HEAD~4
如果要將最新的4次commit記錄合并為一個的話,我們需要將除了第一行commit外的所有commits命令從pick改為 s 或 squash。修改完commist前的命令后,保存并關(guān)閉vim編輯器
figure 2.png
此時git會再次打開vim編輯器,提示編輯新的commit信息。具體地,對于不需要的commit信息在最前面添加#注釋符號,同時添加新的注釋信息。最后保存并關(guān)閉vim編輯器
figure 3.png
現(xiàn)在,git會進(jìn)行變基過程。如果變基過程中沒有遇到?jīng)_突,就可以成功將多個commit壓縮合并成一個新的commit了
figure 4.png
現(xiàn)在,就可以將合并的結(jié)果push到遠(yuǎn)程了
git push origin <遠(yuǎn)程分支名> --force
但為了防止遠(yuǎn)程分支上已經(jīng)存在其他人提交的代碼,推薦使用 --force-with-lease 選項(xiàng)進(jìn)行push
git push origin <遠(yuǎn)程分支名> --force-with-lease
補(bǔ)充說明下,在修改commits命令時。還可以選擇將第一行commit外的所有commits命令從pick改為 f 或 fixup。這樣變基后會直接將第一行commit的提交信息作為壓縮后新commit的信息,無需再次編輯指定
評論
圖片
表情
