首頁  >  文章  >  開發工具  >  git中rebase的用法是什麼

git中rebase的用法是什麼

WBOY
WBOY原創
2022-01-04 16:58:0618651瀏覽

在git中,rebase可以對某一段線性提交歷史進行編輯、刪除、複製、貼上操作,常用於合併commit和將某一段commit貼到另一個分支上,語法為「git rebase 參數[startpoint] [endpoint]」。

git中rebase的用法是什麼

本文操作環境:Windows10系統、Git2.30.0版、Dell G3電腦。

git中rebase的用法是什麼

#rebase在git中是一個非常有魅力的指令,使用得當會大大提升自己的工作效率;相反,如果亂用,會給團隊中其他人帶來麻煩。它的作用簡要概括為:可以對某一段線性提交歷史進行編輯、刪除、複製、貼上;因此,合理使用rebase命令可以使我們的提交歷史乾淨、簡潔!

前提:不要透過rebase修改任何已經提交到公共倉庫中的commit進行修改(你自己一個人玩的分支除外)

1.合併多個commit為一個完整commit

當我們在本地倉庫中提交了多次,在我們把本地提交push到公共倉庫中之前,為了讓提交記錄更簡潔明了,我們希望把如下分支B、C、D三個提交記錄合併為一個完整的提交,然後再push到公共倉庫。

git中rebase的用法是什麼

現在我們在測試分支上新增了四個提交,我們的目標是把最後三個提交合併為一個提交:

git中rebase的用法是什麼

這裡我們使用指令:

  git rebase -i  [startpoint]  [endpoint]

其中-i的意思是--interactive,也就是彈出式的介面讓使用者編輯完成合併操作,[startpoint] [endpoint]則指定了一個編輯區間,如果不指定[endpoint],則該區間的終點預設是目前分支HEAD所指向的commit(註:該區間指定的是一個前開後閉的區間)。

在查看到了log日誌後,我們執行以下命令:

git rebase -i 36224db

或:

git rebase -i HEAD~3

然後我們會看到如下介面:

git中rebase的用法是什麼

##上面未被註解的部分列出的是我們本次rebase操作包含的所有提交,下面註解部分是git為我們提供的命令說明。每一個commit id 前面的pick表示指令類型,git 為我們提供了以下幾個指令:

  • #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內容編輯如下:

git中rebase的用法是什麼

然後是註解修改介面:

git中rebase的用法是什麼

編輯完儲存即可完成commit的合併了:

git中rebase的用法是什麼

#推薦學習:《Git教學

以上是git中rebase的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn