特性分支
2020 年 5 月 7 日
特性分支是一种 源代码分支模式,开发人员在开始开发新特性时会创建一个分支。她在该分支上完成所有特性的工作,并在特性完成时将更改与团队的其余部分集成。
在工作过程中,她可能会将团队其余部分确认的更改合并到她的分支中,以减少特性完成后的集成工作量,但她不会将更改放到公共代码库中,直到那时。这会导致两个人在不同的特性分支上工作,直到第二个人将他们的工作合并到公共代码库中,才进行集成。
特性分支是一种流行的技术,特别适合开源开发。它们允许在特性完成之前将所有特性工作保存在团队的公共代码库之外,这使得所有与合并相关的风险都可以推迟到那时。但是,这种隔离确实会阻止早期发现问题。更严重的是,它还会阻止重构 - 缺乏重构通常会导致代码库健康状况严重恶化。
使用特性分支的后果在很大程度上取决于完成特性的时间。一个通常在一两天内完成特性的团队能够足够频繁地进行集成,以避免延迟集成的弊端。那些需要数周或数月才能完成特性的团队将遇到更多此类困难。
进一步阅读
有关特性分支的更多详细信息,请参阅我在 管理源代码分支的模式 上的完整文章。这将特性分支模式置于使用分支进行软件开发的更广泛图景中,分解了在特性分支上工作的流程,讨论了集成频率所涉及的权衡,并探讨了持续集成的替代方案。
修订
我在 2009 年 9 月 3 日将我的原始帖子发布到此 URL。当我发布 管理源代码分支的模式 时,我将此页面缩减为简短摘要。