[译] 功能分支

date
May 11, 2021
slug
[译]-功能分支
status
Published
tags
版本控制工作流
summary
功能分支是一种源码分支模式。在这种模式中,当开发者开始开发一个新功能时,她会打开一个分支。她在这个分支上完成所有的工作,并在功能完成后与团队的其他成员集成这些变更。
type
Post
原文作者:Martin Fowler
功能分支是一种源码分支模式。在这种模式中,当开发者开始开发一个新功能时,她会打开一个分支。她在这个分支上完成所有的工作,并在功能完成后与团队的其他成员集成这些变更。
在此工作中,她可能会将团队其他成员所确认的变更合并到她的分支中,以便在功能完成后减少她的集成量,但在那之前她不都会将她的变更放入公共代码库中。这将导致这样的后果:有两个工作在不同功能分支上的人,只有在第二个人将他们的工作合并到公共代码库之后,他们的工作才会被集成。
功能分支是一种流行的技术,特别适用于开源开发。这种技术允许所有工作都在一个分支上完成,以此来在工作完成之前与团队的公共代码库隔离,这使得合并所涉及的所有风险都被推迟到了最后。然而,这种隔离也阻碍了对问题的早期发现。更严重的是,它还阻碍了重构,而缺乏重构往往会导致代码库健康状况的严重恶化。
使用功能分支的结果很大程度上取决于完成功能所花费的时间。一个通常在一两天内完成功能的团队,能够足够频繁地进集成,避免了延迟集成带来的问题。而那些需要几周或几个月才能完成一个功能的团队,则会遇到更多这样的困难。

延伸阅读

关于功能分支的更多细节,请参见我的长篇文章《管理源代码分支的模式》。这篇文章将功能分支模式放在了软件开发中使用分支的更大图景之下,分解了使用功能分支时的工作流,讨论了涉及集成频率的权衡,并探讨了持续集成的替代方案。

修订

我于2009年9月3日在这个网址上发表了原始文章。当我发表《管理源码分支的模式》时,我把这个页面缩减为一个简短的摘要。
 
译于2021年5月11日,部分内容可能会随着时间的改变有所发展。

© ryougifujino 2021 - 2022