多个开发人员应该在同一个分支中工作,然后更新-修改-提交吗?还是每个开发人员都应该拥有自己的独立分支?如果共享分支,对于进行例行维护而不是未维护代码流的环境会产生什么影响?此外,如果您在每个开发人员完成并通过测试后立即部署他们的工作(快速部署),而不是将所有工作放入单个发布中,这将如何运作?
多个开发人员应该在同一个分支中工作,然后更新-修改-提交吗?还是每个开发人员都应该拥有自己的独立分支?如果共享分支,对于进行例行维护而不是未维护代码流的环境会产生什么影响?此外,如果您在每个开发人员完成并通过测试后立即部署他们的工作(快速部署),而不是将所有工作放入单个发布中,这将如何运作?
分支被用作版本控制功能或实验性代码的方式,以防止这些代码破坏主线/干线。
尽管开发者有自己的个人分支进行深入实验,但通常分支围绕着添加新功能展开。这些新功能通常需要多人提交。
例如,在一个 Web 项目上,两名开发者和一名设计师可能正在为公司网站进行整体更新。他们仍然需要保持主线/干线代码的清洁,以防在整体更新完成之前需要快速更改它。所以他们创建了一个“facelift”分支并在其中工作。当开发人员提交 JavaScript 时,设计师可以提交 CSS 和图像。一旦完成 facelift 功能,他们就可以将其合并到主线/干线并发布。
他们需要个人分支的唯一原因是进行实验。例如,设计师正在尝试实现“滑动门”选项卡,在 IE6 中无法正确设置填充。如果他解决了问题,他可以将其合并到 facelift 分支中,否则,他会忽略它并继续回到 facelift 分支的其余设计。
我认为合并分支可能存在问题(功能丢失或不一致),无论源代码控制工具有多好。我更愿意选择多个开发人员在单个主分支上工作。可以有其他分支用于生产错误修复或概念验证(POC),在这些分支中,合并应该尽快进行更改(错误修复)或很有可能不需要合并(POC)。