我对标题不满意,但我认为我的解释过于复杂,最后就像上面一样简单.
我们使用的是一个分支模型,它具有一个中心原点repo,一个"develop"分支,在这个分支上有特征分支.
我在开发分支中开发了一组本地更改,例如:
develop (A)- (D1) - (D2)
\ - (F1) - (F2) - (F3) - (F4)
Run Code Online (Sandbox Code Playgroud)
在这一点上,我在我的git gui中滑倒,而不是将我的功能分支作为远程分支推送到原点,我不知何故将其推回原点/开发.所以,我们现在有:
develop (A)- (D1) - (D2) - - (M1)
\ - (F1) - (F2) - (F3) - (F4) /
Run Code Online (Sandbox Code Playgroud)
我们还不想要的.由于在这一天只有我的自己和另一个开发人员,我登录到原始主机并将开发头部操作回D2提交并将我的功能分支回到F4.我问我的同事在我做完之前不要拉,因此认为一切都很顺利.
(实际上我克隆了原始仓库,使头部局部变化,然后强行将它们推回上游.我实际上并不记得确切的命令,但结果是所希望的回购,据我所见) .
我忘记的是,我们的持续集成系统正在定期拉动并设法获得合并头的副本.一个星期后,我注意到了一些来自原始主机的巡航控制提交,并感觉不舒服.果然它正在将原点开发头部合并到其本地的"功能分支合并"回购中.
所以我们现在处于这样的情况:
Cruisecontrol回购:
(from origin/develop) (C1) - (C2) - (C3)
develop (A)- (D1) - (D2) - - (M1) \ (M2) \ (M3)
\ - (F1) - (F2) - (F3) - (F4) /
Run Code Online (Sandbox Code Playgroud)
原产地回购:
develop (A)- (D1) - (D2) - (C1) …Run Code Online (Sandbox Code Playgroud)