1. 先用git log查看哪些message需要合并
$ git log
拷贝出需要合并的message,之前的那个commit id。
commit 09d015f94aecbba22bfed9ee3b4e1791b7567e16
Author: 何幻 <3181815+thzt@users.noreply.github.com>
Date: Mon Aug 6 21:38:35 2018 +0800
Initial commit
commit id为09d015f94aecbba22bfed9ee3b4e1791b7567e16
。
2. 使用git rebase指定哪些message要进行合并
$ git rebase -i 09d015f94aecbba22bfed9ee3b4e1791b7567e16
以上列表是按提交顺序展示的信息,
pick 1d316b0 1
pick 3b9acb8 2
pick e47611c 3
pick 260da8f 4
pick e88e9a3 5
# Rebase 09d015f..e88e9a3 onto 09d015f (5 commands)
...
3. 修改提交信息前的命令(command)
我们需要保留最上面那个,然后将其他提交记录前的命令(command)改成squash
,或者s
。
pick 1d316b0 1
s 3b9acb8 2 <- 将本行第一列的命令改成s
s e47611c 3 <- 将本行第一列的命令改成s
s 260da8f 4 <- 将本行第一列的命令改成s
s e88e9a3 5 <- 将本行第一列的命令改成s
# Rebase 09d015f..e88e9a3 onto 09d015f (5 commands)
...
4. 修改汇总后的message
注意保存修改,并退出。
命令行会自动打开一个新界面。
把注释前的message都删掉,改成合并后的message。
注意保存修改,然后退出。
5. 强制push到服务端
$ git push -f
注意,这里使用git push
是不行的,
必须加强制push标志位-f
。