Sourcetree 中使用rebase变基(交互式变基)

258 阅读2分钟

  1. 两个分支都提前拉一下,保证代码是最新的
  2. 开始变基
  • 先切换到dev分支,再点击master分支中最近的一次提交

  • 右键 ‘‘交互式变基’’,这个时候会弹一个弹框

  • 如果什么都不点,直接点确定就是进行变基,会把所有的提交记录一条一条变基

  • 如果想把提交记录整合,可以先点第一条记录,然后点最下面的 "用此前的squash"

  1. 处理冲突
  • 接着点击确定,有可能会有冲突报错,这个时候解决冲突。

  • 推荐在VsCode中直接使用(Accept Current Change) “我的版本” ,来解决冲突

  • 在最上方 "操作" 项,点击 "继续变基"

  • 这个时候过一会就会好,如果卡了很长时间,可以点击取消,再次点击"继续变基"。

  • 依次解决冲突,如果有报错,点击关闭 再点击 "继续变基"。

  • 如果出现以下情况 点击 " - "移除 ,这个时候一般就好了。

  1. 开始rebase Master分支
  • 成功情况如图,可以看到记录都合并在一个提交中了

  • 接下来切换到Master分支中,右键点击dev分支 选择"将当前变基到xxxx"

  • 点击确定,因为 之前dev已经变基过了 这会一般不会有什么冲突。

  • 处理完后 master和dev在同一条提交记录上就算是成功了。接着可以再点击推送(push)。

  • 如果推送失败,需要勾选 "强制推送",再点击推送。

  • 直接操作master有风险,可以dev,master分支都拉一个temp临时分支,在临时分支上先处理 没问题在再master分钟上操作。