原理

一句话总结就是:把当前分支从搬到目标分支之上。

  1. 首先,执行rebase操作时会先找到当前分支和目标分支的最近共同commit。
  2. 然后记录下当前分支自这个共同commit以来的所有提交。
  3. 之后分别将记录中的commit应用到目标分支上,类似于cherry-pick。如果遇到冲突需要先解决冲突。
  4. 最后将当前分支移动到目标分支处理完的最新提交上。

整个过程类似于入栈的操作。

需要注意的是,当执行rebase操作之后,想要直接git push是没办法成功的,因为当前分支的基己经变了(也就是“变基”),所以需要添加 --force 参数才能提交。

使用

git checkout dev (当前分支)
git rebase master(目标分支)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐