git reabase解析

182 阅读1分钟

首先对比merge和rebase合并代码的区别,merge合并的代码会出现分叉,开发的人越多,分叉越多,容易使master分支看起来不直观,不便于维护,而使用rebase进行合并代码master则会呈现出一条直线,非常直观。

如上图,当我们需要将dev合并到master的时候执行 git merge dev, 此时master会在C3的基础上创建一个新的提交C6,然后把C4和C5提交的代码都合并到master里面,这时会发现,master的提交就不会呈现为一条直线。

为了解决这个问题使master的提交一直呈一条直线,这时就会使用到git rebase,当我们要将dev的代码合并进master时,需要做以下几步骤:

  • 1:rebase之前需要切换到master分支拉到最新的代码
  • 2:切换分支到需要rebase的分支,这里是dev分支
  • 3:执行git rebase master,有冲突就解决冲突,解决后直接git add . 再git rebase --continue即可,此时git状态如上图rebase走向,此时master会落后dev2个提交(C4,C5)
  • 4:切换到master分支,执行git merge dev,至此完成合并