git rebase遇到的问题

最近在推进项目的时候,因为develop分支在我拉取新分支开发时发生了变动,就需要rebase操作变换基底,将develop分支新增的修改进行同步

遇到的问题是,在进行rebase之后,即

git rebase develop   #现处于自己的开发分支内

而后无法将自己改动的文件和从develop拉取的新文件进行git push操作,因为现在正处于变基阶段,并非处于自己的开发(feat)或者总开发(dev)分支上,所以git push/pull操作都是不好用的;

而后因为rebase之后与dev分支并没有冲突,所以可以直接使用git push --force强行将分支合并,这样feat上面的代码就可以完成和dev分支进行一个合并的过程;这是因为在我开发的过程中dev分支并没有进行修改;所以没有冲突要解决,可以直接进行强推进行合并。

方法一:

后来进行开发的时候,因为dev分支之上有改动,而且是基于我拉取feat分支之后的改动,那么就可以视为基底变动,使用git rebase xxx(分支) 会抽离共同的父'节点',然后基于这个'节点'进行dev分支和feat分支的合并,如果合并过程中没有冲突,那么可以直接进行强推,如果有冲突,就需要先解决冲突,然后git commit -m 'xxx'进行改动提交,然后要进行必要的一步操作就是:

git rebase --continue

然git继续帮忙检查分支之上的冲突,然后继续进行解决和commit直到rebse无法检测出新的冲突为止:在这里要提醒大家一句,解决冲突的时候一定要对冲突进行合理的取舍,因为我没有做好这一步,代码全部混乱了,就需要非常复杂的重排....

如果不想进行rebase了 也可以采用:

git rebase --abort 

取消这次rebase

方法二:

很简单的方法,当我们在feat分支下开发完毕后,将改动过的文件通过 git stash进行代码暂存,然后切换到dev分支,使用git pull拉取最新代码,然后切换回feat分支,还原暂存区代码 git stash pop(还原暂存区栈顶代码) pop即出栈 ; 然后可以在进行校验一边 git rebase dev 检查是否还有冲突,如果没有直接强推即可;

以上两种方法都是基于项目允许进行git push --force(强推)的情况下可以实现的,如果代码不可以进行强推,那么以上两种方法获取只有第二种好用,即不进行rebase检验,从dev分支切回feat分支时直接进行git push...

上面就是我解决场景问题的详细步骤:在拉取代码分支后,主分支(dev)变动时,git rebase如何进行操作 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值