Git小技巧之使用git rebase合并提交

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

合并时Vi编辑界面

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

    第一次提交

合并时的几个命令介绍

  • pick:正常选中
  • reword:选中,而且修改提交信息;
  • edit:选中,rebase时会暂停,容许你修改这个commit
  • squash:选中,会将当前commit与上一个commit合并
  • fixup:与squash相同,但不会保存当前commit的提交信息
  • exec:执行其余shell命令
相关文章
相关标签/搜索