在平常的开发过程当中,咱们一个功能可能会有不少次提交。并且咱们公司的开发是不容许直接往公司仓库提交代码,因此须要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 第一次提交