git 合并commit操作

223 阅读1分钟

0x00 场景

已经提交到仓库的代码,但是想合并某几次commit操作。

0x01 命令

命令格式:git rebase -i xxx

xxx代表从哪次commit开始合并,合并会列出xxx之前的commit,通过改变这些commit的状态完成合并。

1、可以通过git log 查看commitId,  例如9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3

2、可以用HEAD表示。HEAD^的意思是最近一次commit,也可以写成HEAD~1,HEAD~2则表示倒数第二个commit。

例如:
git rebase -i HEAD~2      表示合并当前commit和上一个commit

git rebase -i 9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3   
表示 合并9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3之前的commit(不包含此次commit)


0x02 场景

场景1: 合并刚刚提交的n个commit

1、执行git rebase -i HEAD~2,执行后会进入vim编辑器,编辑器中会出现两次commit的信息。 图片转存失败,建议将图片保存下来直接上传

2、合并 把要合并的commit全部改为s,wq保存退出。

3、修改合并后的comment 此时会弹出vim编辑器,是合并后的几次commit信息,修改后wq保存退出。