git变基 rebase最佳实践

为什么推荐使用变基呢?

因为提交历史是一条线,很清晰不会像merge一样好几条线且会出现Merge remote-tracking branch ‘origin/feature1’ into feature1这样让人困惑的merge。使用rebase时,只要注意好一点,下游分支在更新上游分支时,让其他全部人员都提交、push,然后再由一个人来操作,如果不这样做的后果是,可能会覆盖同事的push,但是还是可以找回来的,只要被覆盖同事也设置的是rebase。

rebase的过程

rebase的原理就是,比如在feature1分支上更新,那么就以远程feature1分支作为基础(head指向远程分支的最后commit),然后找出本地feature1与远程feature1的共同祖先,将本地feature1共同祖先以后的commit在远程feature1重放一遍。head就是黄色的图标。
在这里插入图片描述


merge
在这里插入图片描述

rebase
在这里插入图片描述

最佳实践intellij idea设置

我用的是intellij idea开发,所以就以此工具举例。
settings(ctrl+alt+s)—>version control---->git,使用rebase。
在这里插入图片描述
更新(ctrl+T)时,选择rebase。
在这里插入图片描述
如果更新时不弹出确认框,则settings(ctrl+alt+s)—>Version Control—>Confirmation---->勾选Update。这个设置,对svn也生效。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2554373b33746008240fbb12e9f4b64.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUVFfODUxMjI4MDgy,size_20,color_FFFFFF,t_70,g_se,x_16

合并上游分支的最佳实践

  • 待下游分支开发完毕后,所有成员都commit、push
  • 由一个人在下游分支上rebase 上游分支,然后强制push,因为强制推送会覆盖远程,所以要求第一条;

上游分支合并下游分支最佳实践

合并上游分支的最佳实践的基础上

  • 切换到上游分支,直接merge下游分支,合并后是一条直线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值