Git将多个commit合并成一个commit

直接上方法,这里我的目的是想把这四次commit合并成一次 

这里使用到一个命令:git rebase -i,

既然要把最上面的合并成一次,那么git rebase -i 后面跟的参数应该是想要合并的最前面commit id的上一个,就是d6c2b....这个

git rebase -i d6c2b9f83c764306a83badf653f3d08a95bad1cd

输入完成会弹出以下框,这里选择基于最早的pick合并,合并到最早的(ec6c077d9e one)合并,其他都合并到前面的commit id去

修改成以下然后保存(意思就是把下面的三个commit 合并到one)

保存后弹出下面

保存之后,git log查看,这里commit变了(正常,因为文件变了)

ok~

补充(合并不连续的commit id):

以上是将连续的commit id合并,假如是不连续的话,那么你也是拿最早的commit id来执行git  rebase -i  commit id,然后进入弹出框,你会看到pick中没有最早你要合并的那个commitid,这里你需要按照列表的格式把最早的commit id复制到顶部,格式就是 pick  commit id   XXX,这个XXX就表示注释(可有可无),然后再把你要合并的几个commit一定复制到当前这个新加的pick下面,然后修改成 (s  commit id   XXXX),有几个写几个,把重复的去掉,然后保存即可。

原文地址:https://www.cnblogs.com/wt645631686/p/13550192.html