git rebase -i合并多次提交的實現(xiàn)
簡介
在日常開發(fā)中,代碼變更比較頻繁,有時候想讓前幾次提交的合并為一次提交,這里可以使用git rebase -i 命令來完成,當(dāng)然,git rebase命令不僅僅用于合并提交,它還有許多用處,比如可以使用git rebase onto將某一段commit粘貼到另一個分支上等等,這里主要介紹合并提交。
命令介紹
rebase為變基
git rebase -i 命令可以壓縮合并多次提交
格式:git rebase -i [startpoint] [endpoint]
其中-i的意思是–interactive,即彈出交互式的界面讓用戶編輯完成合并操作,[startpoint] [endpoint]則指定了一個編輯區(qū)間,如果不指定[endpoint],則該區(qū)間的終點默認(rèn)是當(dāng)前分支HEAD所指向的commit(注:該區(qū)間指定的是一個前開后閉的區(qū)間)。
在查看git的log后,可以使用如下命令
// 合并從當(dāng)前head到15f745b(commit id) git rebase -i 15f745b 或: // 合并最近的兩次提交 git rebase -i HEAD~2
執(zhí)行這個命令后會跳到一個vi編輯器
里面的提示有:
- pick:保留該commit(縮寫:p)
- reword:保留該commit,但我需要修改該commit的注釋(縮寫:r)
- edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
- squash:將該commit和前一個commit合并(縮寫:s)
- fixup:將該commit和前一個commit合并,但我不要保留該提交的注釋信息(縮寫:f)
- exec:執(zhí)行shell命令(縮寫:x)
- drop:我要丟棄該commit(縮寫:d)
實操
這里在終端輸入: git rebase -i HEAD~2 這里的 HEAD~2 表示合并最近兩次的提交, 如果想合并最近三次的提交修改為: git rebase -i HEAD~3
需要做的是,將第二行的 pick 改為 s, “s” 為 “squash” 的縮寫,“squash” 的意思是將這個提交壓縮為最后一次提交
保存后彈出這樣的
將 This is the commit message #2 下面的內(nèi)容改成你想提交的概述即可
最后保存退出即可
到此這篇關(guān)于git rebase -i合并多次提交的實現(xiàn)的文章就介紹到這了,更多相關(guān)git rebase -i合并多次提交內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Git中smart Checkout與force checkout的區(qū)別及說明
這篇文章主要介紹了Git中smart Checkout與force checkout的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08如何解決vscode中ESLint和prettier沖突問題
這篇文章主要給大家介紹了關(guān)于如何解決vscode中ESLint和prettier沖突問題的相關(guān)資料,ESLint和Prettier之間可能會發(fā)生沖突,因為它們都是用于代碼規(guī)范化的工具,但它們的規(guī)則和格式化方式可能不同,需要的朋友可以參考下2023-11-11IDEA升級后Git拉取和推送的標(biāo)簽消失的解決方法
本文主要介紹了IDEA升級后Git拉取和推送的標(biāo)簽消失的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06