我是git的新手,所以这可能很简单,我在Visual Studio Online中创建了两个分支
要做一个热修复,我从master创建了一个名为 hotfix 的分支,进行了更改+同步,并创建了一个拉取请求以将其检入主服务器。
拉取请求完成后,您可以选择将更改添加到新分支中并创建新的拉取请求,我在开发分支中执行此操作。
现在两者都发生了变化,但是现在主人说它已经领先2并且落后了2。这似乎不对。
我做错了什么?
答案 0 :(得分:2)
在完成拉取请求合并master
分支到develop
之后,实际上没有合并hot-fix
到master
。相反,您可以选择从hot-fix
分支到develop
分支的更改。
让我们用下面的图说明步骤(如果master
分支和develop
分支提交历史不是如下,你也可以参考下面的步骤,因为机制是相同的):
首先假设您的master
分支和develop
分支提交历史记录如下:
…---A---B---D develop
\
C master
然后您创建了hot-fix
并在以下提交历史记录中作为提交E
和F
进行了更改:
…---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-fix
和develop
)时,将创建一个新的主题分支{ {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
分支将在两个提交master
和G
之后,并提前两个提交D
和C
。