Git热修复掌握最终提前2和后退2

时间:2017-12-13 20:26:51

标签: git azure-devops

我是git的新手,所以这可能很简单,我在Visual Studio Online中创建了两个分支

  • Master - 使用策略(因此拉取请求仅更新)
  • 开发 - 使用策略(因此拉取请求仅更新)

要做一个热修复,我从master创建了一个名为 hotfix 的分支,进行了更改+同步,并创建了一个拉取请求以将其检入主服务器。

拉取请求完成后,您可以选择将更改添加到新分支中并创建新的拉取请求,我在开发分支中执行此操作。

现在两者都发生了变化,但是现在主人说它已经领先2并且落后了2。这似乎不对。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

在完成拉取请求合并master分支到develop 之后,实际上没有合并hot-fixmaster。相反,您可以选择从hot-fix分支到develop分支的更改。

让我们用下面的图说明步骤(如果master分支和develop分支提交历史不是如下,你也可以参考下面的步骤,因为机制是相同的):

首先假设您的master分支和develop分支提交历史记录如下:

…---A---B---D    develop
         \
          C      master

然后您创建了hot-fix并在以下提交历史记录中作为提交EF进行了更改:

…---A---B---D    develop
         \
          C     master
           \
            E---F  hot-fix

然后创建PR以将hot-fix合并到master,并完成PR,提交历史将是:

…---A---B---D    develop
         \
          C-------G   master
           \     /
            E---F  hot-fix

当您从E分支到另一个分支(F)挑选更改(提交hot-fixdevelop)时,将创建一个新的主题分支{ {1}}来自hot-fix-on-develop分支顶部的hot-fix分支的更改,并且提交历史记录为:

develop

如果您创建PR以将 E'---F' hot-fix-on-develop / …---A---B---D develop \ C-------F master \ / E---F hot-fix 分支合并到hot-fix-on-develop分支,并且在完成PR之后,提交历史将是:

develop

如果您将 E'---F' hot-fix-on-develop / \ …---A---B---D--------G develop \ C-------F master \ / E---F hot-fix 设置为比较分支,那么develop分支将在两个提交masterG之后,并提前两个提交DC