在git中,rebase可以對某一段線性提交歷史進行編輯、刪除、複製、貼上操作,常用於合併commit和將某一段commit貼到另一個分支上,語法為「git rebase 參數[startpoint] [endpoint]」。
本文操作環境:Windows10系統、Git2.30.0版、Dell G3電腦。
git中rebase的用法是什麼
#rebase在git中是一個非常有魅力的指令,使用得當會大大提升自己的工作效率;相反,如果亂用,會給團隊中其他人帶來麻煩。它的作用簡要概括為:可以對某一段線性提交歷史進行編輯、刪除、複製、貼上;因此,合理使用rebase命令可以使我們的提交歷史乾淨、簡潔!
前提:不要透過rebase修改任何已經提交到公共倉庫中的commit進行修改(你自己一個人玩的分支除外)
1.合併多個commit為一個完整commit
當我們在本地倉庫中提交了多次,在我們把本地提交push到公共倉庫中之前,為了讓提交記錄更簡潔明了,我們希望把如下分支B、C、D三個提交記錄合併為一個完整的提交,然後再push到公共倉庫。
現在我們在測試分支上新增了四個提交,我們的目標是把最後三個提交合併為一個提交:
這裡我們使用指令:
git rebase -i [startpoint] [endpoint]
其中-i的意思是--interactive,也就是彈出式的介面讓使用者編輯完成合併操作,[startpoint] [endpoint]則指定了一個編輯區間,如果不指定[endpoint],則該區間的終點預設是目前分支HEAD所指向的commit(註:該區間指定的是一個前開後閉的區間)。
在查看到了log日誌後,我們執行以下命令:
git rebase -i 36224db
或:
git rebase -i HEAD~3
然後我們會看到如下介面:
##上面未被註解的部分列出的是我們本次rebase操作包含的所有提交,下面註解部分是git為我們提供的命令說明。每一個commit id 前面的pick表示指令類型,git 為我們提供了以下幾個指令:
以上是git中rebase的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!