Idea的环境下git的rebase(变基)

Idea的环境下git的rebase(变基)

背景

团队合作中可能会出现多次修改自己模块的代码,然后合并的时候的提交记录看起来会比较繁杂

image-20231229142438992

思路

把分支1的提交记录压缩为一条,然后在主分支cherryPick刚刚压缩的提交,实现整合

操作

选择变基基点

image-20231229142923112

操作变基

将需要进行操作的提交记录进行操作

image-20231229143257037

操作项
  1. reword(改写): 这一类commit也会保存下来,不过在保存下来之前会有一次修改commit message的机会

  2. edit(暂停编辑):这一类的commit也会直接保存下来,不过,当合并到这种类型的commit时,整个合并经常会暂停下来,你可以重新修改这次commit中的变动内容,比如给这个commit继续新增一些代码改动、或者修改commit message,然后git add(不要忘记 git add了), 再继续使用git rebase —continue,来继续rebase操作。

  3. squash(压缩):标记为squash的commit在rebase操作完成后不会保留,它会与之相邻的上一次commit进行合并。同时它的commit message也会与上一次commit的message合并。

  4. fixup(修补): 这类commit不会保留,会直接与相邻的上一次commit合并,与squash不同之处在于,它的commit message回直接丢弃,即这次commit会被视为对前一次commit的一次小的补充修改(fixup),commit message就以前一次为准

  5. drop(删除):标记为skip的commit会直接被删除,就相当于这次commit从来没有发生过。同时,这个commit中涉及的所有代码修改全部会被删除。

不进行操作

pick(选取): 标记为pick的commit会在rebase操作后会直接保留下来,不做任何改动,也不会合并,最上面的commit最好标记为这一类

这里,我选择Squash后再StartRebase

image-20231229143519795

推送

发起推送之后,会弹出提示框,push的时候它认为你本地的变更与远程版本不一致

  • 若选择rebase的话,就会发现恢复到rebase操作之前的记录

  • 若选择merge的话,可以看到处理的结果,原先的2条提交信息还在,只是会新生成一个整合后的提交。

image-20231229144058325

我们选择marge

看到刚刚的操作成功提交

image-20231229144232995

切换分支

checkOut为将要合并的分支

这里,我合并到master

image-20231229143850131

保证我们最终合并分支为master,进行合并分支为此前操作分支

image-20231229144432037

优选

进行操作

image-20231229144625247

双击master即可看见刚才操作生效

image-20231229144855205

此时确保无误即可推送

image-20231229145001805

解决冲突(有冲突才会弹出提示框)

把需要保留的代码保留推送

解决完即可强制推送

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值