「Git」合并多個 Commit

在使用 Git 作為版本控制的時候,我們可能會由于各種各樣的原因提交了許多臨時的 commit,而這些 commit 拼接起來才是完整的任務。那么我們?yōu)榱吮苊馓嗟?commit 而造成版本控制的混亂,通常我們推薦將這些 commit 合并成一個。

首先假設我們有3個 commit

git-log-origin.png

我們需要將 2dfbc7e8c4e858b5 合并成一個 commit,那么我們輸入如下命令

git-rebase-i.png

其中,-i 的參數(shù)是不需要合并的 commit 的 hash 值,這里指的是第一條 commit, 接著我們就進入到 vi 的編輯模式

git-rebase-edit.png

可以看到其中分為兩個部分,上方未注釋的部分是填寫要執(zhí)行的指令,而下方注釋的部分則是指令的提示說明。指令部分中由前方的命令名稱、commit hash 和 commit message 組成。

當前我們只要知道 picksquash 這兩個命令即可。

  • pick 的意思是要會執(zhí)行這個 commit
  • squash 的意思是這個 commit 會被合并到前一個commit

我們將 c4e858b5 這個 commit 前方的命令改成 squashs,然后輸入:wq以保存并退出

git-rebase-squash.png

這是我們會看到 commit message 的編輯界面

git-rebase-commit-message.png

其中, 非注釋部分就是兩次的 commit message, 你要做的就是將這兩個修改成新的 commit message。

git-rebase-commit-message-combination.png

輸入wq保存并推出, 再次輸入git log查看 commit 歷史信息,你會發(fā)現(xiàn)這兩個 commit 已經(jīng)合并了。

git-rebase-log-new.png

注意事項:如果這個過程中有操作錯誤,可以使用 git rebase --abort來撤銷修改,回到?jīng)]有開始操作合并之前的狀態(tài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 在使用 Git 作為版本控制的時候,我們可能會由于各種各樣的原因提交了許多臨時的 commit,而這些 commi...
    陳云峰閱讀 735評論 0 1
  • 前言 雖然看到博主都寫了有關(guān)git rebase -i合并commit的博文,但為鞏固知識也在自己的博客中稍微做一...
    胡哈哈哈閱讀 3,070評論 0 0
  • Git是目前最流行的版本管理系統(tǒng),也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,996評論 1 17
  • 年輕時候的理想報復還有對生活的熱忱,被規(guī)律的生活和煩人的瑣事漸漸消磨,還總會遇見錯誤的人來耗費時光,工作后快樂已經(jīng)...
    代號石羊閱讀 390評論 0 0
  • 整理舊物時,翻出了當年寫的日記和你親筆寫給我的24封書信,黑色封皮的筆記本共有5本,每封書信的左上角,被我矯情的畫...
    艾拉的時光機閱讀 816評論 0 11

友情鏈接更多精彩內(nèi)容