站長資訊網
最全最豐富的資訊網站

git中rebase的用法是什么

在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教程

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩精品视频美在线精品视频| 3d精品重口littleballerina| 亚洲日韩国产二区无码| 777国产偷窥盗摄精品品在线| 久久99精品国产99久久| 国产成人精品久久综合| 老司机午夜精品视频播放| 亚洲av日韩av激情亚洲| 亚洲中文久久精品无码1| 无码日韩人妻精品久久蜜桃| 久久国产成人精品国产成人亚洲| 亚洲精品无码专区久久久| 国产精品日韩深夜福利久久| 日韩高清特级特黄毛片| 日韩精品无码区免费专区| 67194国产精品免费观看| 久久久无码精品亚洲日韩蜜臀浪潮| 久热这里只有精品99国产6| 国产乱码一二三区精品| 国产精品久久久久久久久kt| 国产精品美女网站在线看| 杨幂国产精品福利在线观看| 亚洲AV日韩AV天堂久久| 久久青草国产精品一区| 九九免费精品视频在这里| 日韩精品一区二区三区中文字幕| 中文字幕日韩一区| 日韩有码在线视频| 免费观看国产精品| 国产精品久免费的黄网站| 国产在热线精品视频| 国产91精品久久久久久| 国产精品V亚洲精品V日韩精品| 手机看片日韩福利| 强制高潮18XXXXHD日韩| 免费人妻精品一区二区三区| 国产A∨国片精品一区二区| 久久久久久久久久免免费精品| 在线中文字幕精品第5页| 久久国产成人精品麻豆| 久久国产精品亚洲综合|