[英]Git branching strategy for small frequent features targeting single environment
我们的开发过程与此问题中描述的过程相似,并且需要创建许多小功能。 通常每天4-8个功能。 所有功能都应部署到相同的测试环境,因此应该有一个test
分支。
我们应该采用哪种分支策略? 创建单独的功能分支似乎是一项巨大的开销,同时基于主干的开发缺乏灵活性。 是否可以将这些方法混合使用(直接提交以test
较小的功能,并为较大的功能使用单独的分支)。
我们对Git和常见的分支策略(例如git-flow)完全陌生,并试图找到最适合频繁使用的小型功能的策略。
我们将不胜感激,希望为您提供任何帮助或朝着正确的方向发展,因为没有多少文章描述了小功能的分支。 谢谢!
考虑到您至少有两个主要分支:
production
或master
分支,即将发布的分支 test
或工作分支,您可以在其中测试所有新功能 考虑您直接在test
开发所有新功能,然后将这些新功能合并到production
(将test
合并到production
)的方法。 在某些时候,你将有你开发,你不想要发布到功能production
。 然后,您将被迫reset
test
分支以继续使用它,否则最终将有许多不需要的功能发布到production
。 否则,您将需要丢弃test
分支,并再次从production
分支中删除,以进行清理。 然后,如果许多团队成员都在test
分支上工作,并且所有人都将其更改合并到test
,那么每个团队成员将很难跟踪其他团队成员正在处理的功能,因此解决冲突将变得更加困难。
我认为最好的选择是将每个功能都视为不同的分支,直接从production
分支。 因此,例如,在一天中,您需要3个新功能,便会从production
分支并创建: features/one
, features/two
和features/three
。 当这些功能中的每一个都准备就绪时(在不同的时间,由不同的团队成员),所有这些功能都将合并以进行test
(每个团队成员只需要知道他为解决冲突所做的更改,因为他在受控分支上工作)以及他对项目所做的更改),然后展示给客户或团队负责人。 也许所有功能都已获得批准,但其中某些功能可能被拒绝了。 通过这种分支策略,现在很容易丢弃所有不需要的功能并发布批准的功能:您只需要合并批准的功能并丢弃其他功能。
在不同的分支上使用不同的功能将使您对项目有更细致的控制,在这里,每个功能都是分开工作的,并且永远不会混淆。
在您的情况下,您可能对该项目进行了一些小修复(也许该项目是一个网站,您只是在修正拼写错误),然后您可以拥有一个hotfix/quick-fixes
分支(从production
分支),您可以在其中处理所有这些小的更改(即(将肯定会发布),然后合并这些更改以进行test
以快速查看这些更改,或者您直接合并到production
以进行发布。
希望这种观点能帮助您解决分支策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.