想要获取更多文中能够访问个人博客 - 代码无止境。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
第一次提交
复制代码