首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将项目分支合并为演示分支的正确步骤

将项目分支合并为演示分支的正确步骤
EN

Stack Overflow用户
提问于 2019-05-21 03:01:20
回答 1查看 50关注 0票数 0

下面的图表构成了我希望我们的开发环境如何进行的所需流程。有4个标准分支: ProdMaster、TestMaster、DevMaster和master。假设以上四个项目开始于相同的基线,三个不同的开发人员可以各自创建一个新的项目或功能分支。一旦开发完成,每个人都会将自己的更改合并到DevMaster中。Dev主要用于演示和测试,因此假设Project\Feature分支2获得批准进行测试,而1和3没有。然后,我希望能够将项目分支2合并到测试中,而不会带来项目分支1和3中发生的任何更改。

最初我们在GitHub中使用合并提交,但是我们注意到,如果项目分支1被合并,那么2和3,第二个分支将从第一个分支获得提交,第三个分支将从2和3获得提交。

所以我们尝试了squash和merge,这似乎是可行的,因为新的project\feature分支不会受到来自base分支的单独提交的影响。这似乎大部分都是有效的,除了一个小的更改有时会显示所有已经在基本分支上进行的更改。有时这是由冲突引起的,如果我在单个文件中修复了冲突,文件更改的数量将从130+恢复为1。我应该使用的是rebase吗?两者的混合体?或者我只是有一个不正确的流程?我已经做了相当多的研究,就像我团队中的其他成员一样,很难看出squash和rebase之间的实际区别,即使用图表表示出来也是如此。

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 03:15:05

这是一个可能的开发流程,是的,您正在寻找一个重定基数。

您可以使用已批准的分支PB2,并将其重新设置为TestMaster的基础(这里假设TestMaster和主分支密切相关)。

您可以选择将所有更改压缩到一个提交中。

注1:一旦分支PB1,PB2,PB3被合并到DevMaster中,它们就是“焊接的”,而不应该是“未合并的”。您可以使用DevMaster进行批量测试,但如果这是您的批准单位,则应该使用TestMaster的原始分支PB2,或者一起拒绝所有3个更改。也许这就是你有困惑的原因?

注2:在您的描述中,我看不出"master“和"TestMaster”之间的区别,因为本质上,两个分支都应该包含已批准的准备测试的更改。

另一种方法

在这个过程中有4个阶段:

在功能分支中开发

  1. ,以便在TestMaster
  2. waiting上的DevMaster
  3. testing上进行
  4. 测试以获得批准,以便在ProdMaster

上发布

因此,不是像DevMaster,TestMaster,ProdMaster这样的固定分支,你可以用某种方式索引3个分支序列。例如,如果您使用产品的55版本,则可以使用DevMaster55-1、DevMaster55-2、DevMaster55-3 (如果有几轮,则用于每一轮审批)、用于测试版本55的TestMaster55,以及ProdMaster55 (应该投入生产的v55的实际发布)。

这样做的好处是,您不必保持这些序列的同步(例如,TestMaster56将从TestMaster55中分离出来),并且每个分支上的更改历史记录都非常干净。在实践中,ProdMaster55可能只是TestMaster55分支上的一个标签,而TestMaster55是一个在某些时候从主分支起飞的“稳定”分支,并且只接受v55所需的修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56226709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档