【git命令】git rebase 合並多次 commit操作


git rebase 合並多次 commit操作

想要合並n條提交記錄,有兩個方法:

1. 從HEAD版本開始往過去數 n 個版本

git rebase -i HEAD~n

2. 指定一個合並區間 startpointendpoint,注意:該區間指定的是一個前開后閉的區間,意思就是startpoint不參與合並:

git rebase -i  [startpoint]  [endpoint]
  • -i 的意思是 --interactive,即彈出交互式的界面讓用戶編輯完成合並操作
  • startpointendpoint 指定了一個編輯區間
  • 如果不指定endpoint,則該區間的終點endpoint默認是當前分支HEAD所指向的提交

 

操作

1.  執行 git log 查看提交歷史,接下來我們將三次提交合並為一個提交

2. 執行 git rebase -i HEAD~3 ,彈出操作窗口

操作說明:

  • pick:保留該commit(縮寫:p)
  • reword:保留該commit,但我需要修改該commit的注釋(縮寫:r)
  • edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
  • squash:將該commit和前一個commit合並(縮寫:s)
  • fixup:將該commit和前一個commit合並,但我不要保留該提交的注釋信息(縮寫:f)
  • exec:執行shell命令(縮寫:x)
  • drop:我要丟棄該commit(縮寫:d)

根據我們的需求,我們將commit內容編輯如下:

pick 85697ee This is first commit.
squash ee461c1 This is second commit.
squash 326e415 This is third commit.

上面的意思就是把第二次、第三次提交都合並到第一次提交上。

3.然后保存退出,Git會壓縮提交歷史。如果有沖突,需要修改,修改的時候要注意,保留最新的歷史,不然我們的修改就丟棄了

修改以后要記得敲下面的命令:

git add .  
git rebase --continue  

如果你想放棄這次壓縮的話,執行以下命令:

git rebase --abort

4.如果沒有沖突,或者沖突已經解決,則會出現如下的編輯窗口:

我們將三次提交信息合並成一個提交信息

Commit feature branch!

#This is first commit.
#This is second commit.
#This is third commit.

5.編輯完保存即可完成commit的合並了,我們執行一下 git log

參考資料

1. 使用Git-Rebase合並多次提交

2. git 合並多次commit

3. git管理 - 合並commit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM