- 举个例子,假设我本地有下面三个commit未push到远端:
现在要把 功能2-1 和 功能2-2 合并成一个commit,在push到远端。具体步骤如下:b1b53d94 功能2-2 87b09f8f 功能2-1 2929c35b 功能1
-
找到要合并的commit前一个commit的id,即2929c35b(功能2-1前一个的commitId),再命令行中执行:
git rebase -i 2929c35b
-
执行完上面命令后,会弹出如下窗口(这是一个vim编辑窗口,可以使用vim命令):
pick 87b09f8 功能2-1 pick b1b53d9 功能2-2 # Rebase 2929c35..b1b53d9 onto 2929c35 (2 commands) ...
保留第一个pick,将其他的pick都换成s,即:
pick 87b09f8 功能2-1 s b1b53d9 功能2-2 # Rebase 2929c35..b1b53d9 onto 2929c35 (2 commands) ...
再按:x保存退出(vim命令)
-
上述操作完成后会再弹出一个窗口:
# This is a combination of 2 commits. # This is the 1st commit message: 功能2-1 # This is the commit message #2: 功能2-2 ...
在这里要修改我们合并后的message,可以直接把合并前的message都删除掉,换成合并后我们想显示的message,如:
# This is a combination of 2 commits. 功能2
同样切换成命令模式,输入:x保存退出。
完成上述步骤后,我们就完成了多个提交的合并。