Checkout and Rebase onto Current、Rebase Current onto Selected、Merge into Current的区别

Checkout and Rebase onto Current、Rebase Current onto Selected、Merge into Current的区别

举例场景

当前所在分支:dev-name

本地还存在的其他分支:dev

点击idea右下角Git: dev-name按钮会弹出Git Branches弹窗,点击Local Branches下的dev(不是当前分支,另外的分支)会弹出新弹窗,弹窗有以下一些操作按钮:

Checkout

New Branch from Selected…

Checkout and Rebase onto Current


Compare with Current

Show Diff with Working Tree


Rebase Current onto Selected

Merge into Current


Push…


Rename…

Delete

  • 以上是在dev-name分支,点击dev分支按钮出现的内容,其中Selected表示选中的分支(dev),Current表示当前分支(dev-name)

Checkout and Rebase onto Current、Rebase Current onto Selected、Merge into Current的区别

  • Checkout and Rebase onto Current

    表示检出dev,并且以当前分支(dev-name)为基准对dev进行变基

    简单来说就是,切换到dev分支并且将dev-name分支的内容以rebase的形式合并到dev分支

    这个操作的方向与后两个也是有区别的,这个操作会切换分支,后两个操作不会切换分支

    一般来说,不使用rebase,因为rebase会进行变基操作,如果dev-name与dev之间在很早之前才有相同的提交版本(相同的修订版本号revision number),那么rebase合并会带来大量的提交记录变化,影响较大

    个人一般习惯用rebase,比如自己的开发分支(dev-name)与公用的开发分支(dev)用rebase进行合并。最开始dev-name分支是基于dev分支创建的,刚创建时,dev-name与dev具有相同的提交记录。操作步骤举例:

    1. 新创建了dev-name分支,在dev-name开发了一个新功能,准备合并到dev。
    2. 合并前,需要先在dev-name分支提交产生提交记录,提交前,先拉取dev分支最新内容合并到dev-name分支。很多同学提交前没有拉取dev分支最新内容的习惯,建议拉取一下,如果不拉取,那也就不建议使用rebase了,会有变基操作,影响较大
    3. 拉取dev分支最新内容后,dev-name分支与dev分支具有相同的提交记录(就像刚基于dev分支创建的一样),只是dev-name分支有了一些自己修改的内容,此时对修改的内容进行提交,产生提交记录。当前的情况是,dev-name分支比dev分支多了一个最新的提交记录,除此之外,其它的提交记录都是相同的。建议提交后,及时进行合并操作,避免dev分支又产生了新的提交记录。
    4. 此时合并就可以使用Checkout and Rebase onto Current进行合并,因为此时,dev分支类似于是dev-name分支的一个子集,基于dev-name变基,也只是将dev-name分支最新的提交记录同步到dev分支,其它的都没有变。
    5. 注意,此时会切换到dev分支,这倒也没什么不好,因为下一步可能就会把dev分支最新内容推送到远程了。
    6. 如果继续开发,记得手动切换到dev-name分支,切换到dev-name分支后,建议拉取dev分支最新内容到dev-name分支。
  • Rebase Current onto Selected

    表示以选中分支(dev)为基准,对当前分支(dev-name)进行变基

    简单来说就是,将dev分支的内容以rebase的形式合并到dev-name分支

    这个操作不会切换分支

  • Merge into Current

    表示将选中分支(dev)的内容以merge的形式合并到当前分支(dev-name)

    这个操作不会切换分支

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值