git rebase -i 合并多次提交
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git rebase -i 合并多次提交相关的知识,希望对你有一定的参考价值。
参考技术A 在实际开发中,经常会需要使用到git合并功能,git rebase可以将多个commit合并成为一个。这里主要介绍一下git rebase -i命令的使用:
这里有几个使用说明(前面字母是缩写):
p,pick:使用该次提交
r,reword:使用该次提交,但重新编辑提交信息
e,edit:使用该次提交,但停止到该次提交
s,squash:将该commit和前一个commit合并
f,fixup:将该commit和前一个commit合并,但不保留该提交的注释信息
x,exec:执行shell命令
d,drop:丢弃该commit
我这里除了第一个保留pick,其余改成s就可以了。
之后同样是输入i进入编辑界面,修改自己的commit message
Git rebase 使用
Git rebase 使用
个人使用场景:合并当前分支的多个commit记录
如图所示,一个需求对应一个分支,该分支上有多次提交记录(业务变更,有事暂存代码),如果合并到远程就会有A、B、C、D四个记录,现在只想有一条记录,如何处理?
Git 执行命令
第一步 rebase
HEAD 后接的数就表示需要合并多少条commit(此处是最新的commit)
git rebase -i HEAD~4
第二步 squash
把 BCD 的前面的pick 改为 s
esc : wq
第三步 修改注释
esc : wq
结果
此时新的记录就会变成如下场景:
右下角产生变化,如下
其他
git rebase -i HEAD~4
HEAD 后接的数就表示需要合并多少条commit(此处是最新的4条commit)
git rebase -i [startPonit] [endPoint]
- 前开后闭 区间 这里的 [startPonit] 是指需要合并的commit的前一个commit (即当前示例中的 “4cb600e: feat: modify a”)。 因为, 三个commit肯定要基于上一个commit合并成了新的commit。
- 谨慎使用[endPoint] 省略, 即默认表示从起始commit一直到最后一个,但是一旦你填写了, 则表示 [endPoint]后面的commit全部不要了!
以上是关于git rebase -i 合并多次提交的主要内容,如果未能解决你的问题,请参考以下文章