记录一次rebase操作
git 合并方法介绍
方法一:git merge
把两个父节点及其提交记录包含起来生成一个新的节点
方法二:git rebase
复制被rebase的提交记录到当前分支
记录一次rebase操作
我要进行合并啦,记录下问题
步骤一:合并之前分支更新到最新
dev分支 add-account-view分支
步骤二:login rebase dev
遇到冲突
步骤三:解决冲突后,git add,然后 rebase –continue
若依然存在冲突,则重复步骤三,冲突解决完毕后,结果如下:
错误提示 当前add-account-view的状态为,需要拉取39个提交,以及推送67个提交, 按理来说我们正确的合并了dev分支,并解决了相应冲突。 那么问题为什么会出现呢?以及怎么解决这个问题呢?
若根据git状态拉取,则需继续解决冲突,此时冲突跟之前遇到的一样
继续解决重复冲突,完毕后如下
回到dev分支,继续rebase
依然存在同样冲突: 继续解决冲突,完毕,依然需要pull,重新解决冲突,此时问题跟在add-account-view分支上问题一模一样。
通过在网上查找资料,参考别人操作: 得知,正确步骤为:
步骤四 直接执行 git push –force
步骤五 成功rebase
原理分析
个人理解
- rebase之后,相对远程分支而言,本地基底发生了变化,引发了需要pull一下的提示
- 如果确保没问题是可以强制 push的
举例
相当于变基之后本地提交是: C1,C2’,C3’,C4,C5;(C2‘ C3’为目标合并分支的提交记录) 远程提交时: C1,C4,C5
分析
本地提交的前三个提交跟远程的前三个提交不一致,就会提示拉取代码,此时拉取代码会把C4,C5再拉取一下 如果拉取就相当于跟我新合并的代码又冲突,还得解决一次,而且git pull默认是merge合并 git pull之后,就相当于又merge合并了一次: 把提交记录变成了: C1,C4,C5,C2’,C3’ ,C4,C5,可能后边还有其他的合并提交 同名的后一个只是副本这种,还会造成其他的合并提交 先强推下account分支,然后dev再rebase account分支,不然如果同时有其他同事也在提交,那就会被覆盖掉。
- 本文标题:记录一次rebase操作
- 本文作者:Joyer Lee
- 创建时间:2021-04-28 10:20:14
- 本文链接:https://lhx.blog.wj2015.com/2021/04/28/工作日志/记录一次rebase操作/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!