我正在开始一个新项目,并且已决定我们将使用git进行版本控制。
这是一个涉及从头开始开发多个组件/微服务的项目。
为了解决我们组织中我们有初级开发人员,高级开发人员,开发人员,架构师等的复杂问题,我希望在gitflow上使用或多或少的git工作流,以便我们可以确保开发人员可以工作在功能分支上,在进入开发分支之前,我们有一些代码审查流程。我希望拥有与生产/生产就绪代码相对应的主分支,并发布分支以表示当前正在发布的版本。
这是一个敏捷项目,所以我的想法是开发与sprint代码相对应的分支(单元测试和评审)以及与发布相对应的发布分支(= 3个sprint)。
我面临的唯一问题是如何在开始时定义主分支以及主分支和开发之间的关系。
由于它是一个新的开发项目,我们从没有生产代码开始,一切都基本上从功能分支开始,当我们有生产就绪代码时,移动到开发,发布,然后是主。
有关如何以良好方式处理此事的任何建议,这也是一个好主意
提前致谢
答案 0 :(得分:0)
首先创建一个master分支,然后从master分支创建其他分支。供您参考,我发现this gitflow分支模型图很有帮助,并已在多个项目中成功。
不要这样做。首先从最简单的分支策略开始,然后根据复杂性和需求,您可以创建或适应更复杂的分支策略。答案 1 :(得分:0)
我认为position: static
对你所描述的项目来说很合适。
如果你刚刚开始,我会创建gitflow
,但请将其留空。 master
可以填充静态文件(.gitgnore或类似的东西)。然后,您开始在develop
分支中开发并合并到feature
。在三次冲刺后,您创建一个develop
分支并进行扩展测试。
在所有测试通过并且您愿意发布代码后,您将合并到release
。所以你从现在起三个月后首先合并为主人。
答案 2 :(得分:0)
首先,如果您提出这个问题,那么您将希望从一个干净,简单的流程开始,然后一旦团队中的每个人都排得很好,您就可以考虑加入其他分支机构或水平。如果你发现自己不需要,不要感到惊讶!尝试保持单独的并行分支全部同步可能是一项非常重要的任务,当您在它们之间选择功能时,可以使用可理解的提交日志。
注意:下面的壁球合并仅适用于已完成的功能 合并为主人。在开发功能时,如果您定期 需要从主人更新您的功能分支,不要压缩您的更新 合并 master。
有些人更喜欢保留每个功能分支的个人子提交 合并回主人。我没有,但觉得排除挤压,它 没有改变工作流程。
我建议你使用这个简单的流程:
HEAD
适用于所有意图develop
release-2.4
) - 这永远不会合并回master。2.4.0
2.4.1
< / LI>
发布并非必须在HEAD
,您可以在最后一个发布分支之后使用任何提交。
一旦您顺利运行,您可以尝试加入额外的&#39; staging / develop&#39;分支机构,我认为你会发现有限的价值和令人头痛的问题让他们保持清洁和同步。我一直发现,试图让单独的开发和主分支更多地工作而不是价值。
这种流程最大的好处之一就是你的历史是多么干净。如果你看一下它的网络图,它就会发现它是一个连续的链,只有特征分支正在处理,(压缩)特征提交给主人),并释放永不合并的分支。任何人都能清楚地理解一切都没有当地的git大师来解释,也没有深刻理解贵公司可能拥有的任何特殊的开发过程。
答案 3 :(得分:0)
以下是一些选项:
git流背后的想法是开发人员构建并为开发&#34;开发&#34;分支,一旦权力决定了它的发布时间,你就会切断&#34;切断&#34;离开那个分支并创建一个发布分支进行优化,直到它足够好以实际发布。
<强>优点:强>
<强>缺点:强>
我认为这是最直接的,但肯定有缺点。我们的想法是,所有特征都是从master(它始终匹配生产)分支出来的,假设这些分支可以随时合并到任何分支中。当您准备开始测试版本时,只需从主分支创建一个新的Release_v99分支(具有适当的名称)即可。您合并了要发布的功能分支,然后针对Release_v99分支进行测试。
<强>优点:强>
<强>缺点:强>