git多个提交合并为一个commit

git rebase

在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。

下面的例子,将add1、add2、add3、add4这4个commit合并成1个commit,具体步骤如下:

  1. 查看当前的提交信息

    执行命令:git log,可以查看当前的一些提交信息,这些提交按照时间先后顺序为:add1、add2、add3、add4
    git多个提交合并为一个commit

  2. 合并多个commit

    执行命令:
    git rebase -i commit_id
    这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是最下面那个add1的commit ID。

    在我这里也就是执行命令:git rebase -i 727c14cd391a7ed88aefee,执行完命令后就进入到vi的编辑模式:
    git多个提交合并为一个commit
    上图中,pick表示使用当前的commit,squash表示这个commit会被合并到前一个 commit。
    我们这里需要将add4、add3、add2,合并到add1中,因为add1是最靠近上一个commit_id的,因此这里选择将add4,add3,add2合并到add1中。
    在键盘上敲i键进入insert模式,然后将add4,add3,add2前面的pick修改成squash:

    git多个提交合并为一个commit

    修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:
    git多个提交合并为一个commit
    将上图中画线的内容删掉或者注释,然后写一个新的commit信息作为这4个commit的log信息,我这里的新的信息为:add1、add2、add3、add4,如下图所示:
    git多个提交合并为一个commit
    然后保存退出,就会跳转到最初的命令界面:
    git多个提交合并为一个commit

    Successfully表示操作成功。

  3. 查看新的commit信息

    执行命令:git log,查看当前的commit信息:
    git多个提交合并为一个commit
    从上图中,可以看到,我这里已经将add1、add2、add3、add4这4个commit合并成1个新的commit。

上一篇:git 回退到commit之前


下一篇:Git