在平常的開發過程當中,咱們一個功能可能會有不少次提交。並且咱們公司的開發是不容許直接往公司倉庫提交代碼,因此須要fork
到本身的倉庫而後merge
過去,這樣就會致使拉代碼會產生不少的commit
,而這些commit
實際上是沒有什麼實際意義的。提交記錄過多會致使代碼review
很是困難,那麼今天咱們就來介紹一個很是實用的命令 - git rebase
,它能夠將若干次提交合併成一個提交,下面咱們就一塊兒來見證一下這個騷操做吧。git
首先咱們須要準備一個前提環境:
1.初始化一個git倉庫。shell
mkdir git-test cd git-test git init
2.建立一個README.md文件。
3.建立若干個提交(>1)。
咱們執行git log命令會獲得以下結果,一共有三次提交記錄,咱們將經過git rebase命令將後兩個提交合併成一個commit:bash
$ 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~2
,這裏的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 第一次提交