想要獲取更多文中能夠訪問個人博客 - 代碼無止境。git
在平常的開發過程當中,咱們一個功能可能會有不少次提交。並且咱們公司的開發是不容許直接往公司倉庫提交代碼,因此須要fork
到本身的倉庫而後merge
過去,這樣就會致使拉代碼會產生不少的commit
,而這些commit
實際上是沒有什麼實際意義的。提交記錄過多會致使代碼review
很是困難,那麼今天咱們就來介紹一個很是實用的命令 - git rebase
,它能夠將若干次提交合併成一個提交,下面咱們就一塊兒來見證一下這個騷操做吧。shell
首先咱們須要準備一個前提環境: 1.初始化一個git倉庫。bash
mkdir git-test
cd git-test
git init
複製代碼
2.建立一個README.md文件。 3.建立若干個提交(>1)。 咱們執行git log命令會獲得以下結果,一共有三次提交記錄,咱們將經過git rebase命令將後兩個提交合併成一個commit:ui
$ git log
commit 8d27ccf975e5ce4af8fd12fa75534b78fdc5b065 (HEAD -> master)
Author: 碼無止境 <gancy.programmer@gmail.com>
Date: Sun Jun 16 18:00:57 2019 +0800
第三次提交
commit c953ae97af01e49d7f0ad959b42b91334a6726f3
Author: 碼無止境 <gancy.programmer@gmail.com>
Date: Sun Jun 16 18:00:30 2019 +0800
第二次提交
commit 53407186cedef4be98d6001a69ee33d3a8d745fc
Author: 碼無止境 <gancy.programmer@gmail.com>
Date: Sun Jun 16 18:00:06 2019 +0800
第一次提交
複製代碼
1.首先咱們執行git rebase -i HEAD~3,這裏的HEAD~2表明的合併最近兩次提交,命令執行後會進入到一個vi編輯頁面,以下所示:spa
2.編輯以後的內容爲:3d
p c953ae9 第二次提交
s 8d27ccf 第三次提交
複製代碼
3.編輯好後,保存(:wq) 4.而後會進入到一個編輯提交信息的界面(vi編輯),我寫的」合併提交」,咱們看最後合併提交的時間和第二次提交的時間一直,表明上面的合併是將第三次提交合併到了第二次提交。 5.保存消息後就執行成功了,咱們再執行如下git log命令查看,會發現以下效果code
$ git log
commit b1ab9f0af528aa96c333b2287c85d06e9fea891b (HEAD -> master)
Author: 碼無止境 <gancy.programmer@gmail.com>
Date: Sun Jun 16 18:00:30 2019 +0800
合併提交
第二次提交
第三次提交
commit 53407186cedef4be98d6001a69ee33d3a8d745fc
Author: 碼無止境 <gancy.programmer@gmail.com>
Date: Sun Jun 16 18:00:06 2019 +0800
第一次提交
複製代碼