git如何合并多个commit?
使用git rebase -i HEAD~n
,比如需要合并最近3个提交,可以执行
git rebase -i HEAD~3
当执行后会进入交互编辑模式,类似这样
pick 9d3f70e 第二次提交
pick 11041cb 第三次提交
pick 52beea0 第四次提交
# Rebase 630a079..52beea0 onto 630a079 (3 commands)
...
如果需要将第三次和第四次提交合并到第二次提交中,可以按i
键进入编辑模式,把上面第二行和第三行内容改动,改动后如下
pick 9d3f70e 第二次提交
s 11041cb 第三次提交
s 52beea0 第四次提交
# Rebase 630a079..52beea0 onto 630a079 (3 commands)
...
改完后按esc键退出编辑模式,输入:wq
保存后会进入修改提交信息的交互编辑模式,在这里修改合并后的提交信息,修改完成后按esc键退出编辑模式,再按输入:wq
保存后,输出以下内容,合并就完成了。
[detached HEAD fb2d09a] 第二次提交、第三次提交、第四次提交
Date: Mon Sep 26 15:21:12 2022 +0800
1 file changed, 3 insertions(+)
Successfully rebased and updated refs/heads/master.
内容