我的一位同事告诉我,他正在考虑使我们的CI服务器还原失败构建的提交,因此HEAD
in master
始终是稳定的(至少在通过构建时如此)。
这是最佳实践master
吗?还是比在开发人员修复它之前让它崩溃更成问题?
我的想法是,还原提交会使读取提交和修复的任务变得更加复杂(开发人员必须先还原还原,然后提交修复,这也会使混乱git log
),我们应该离开提交然后提交固定。尽管我看到了master
稳定的优点,但是这种失败提交的还原并不能说服我。
编辑:不管是master
开发分支还是其他任何开发分支都没有关系,但问题仍然存在:CI系统是否应还原使构建失败的提交?
另一个(冗长)编辑:好的,我们git
以一种奇怪的方式使用。我们认为,分支的概念与真实CI背道而驰,因为提交分支会使您与其他开发人员及其更改隔离开来,并在您不得不重新集成分支并处理可能的冲突时增加了时间。如果每个人都致力于master
此冲突,则将冲突减至最少,并且每次提交均通过所有测试。
当然,这迫使您只推稳定(或破坏构建)并更仔细地编程,以免在引入新功能时破坏向后兼容性或进行功能切换。
以此方式进行CI时需要权衡取舍,但这超出了问题的范围(有关此问题,请参阅相关问题)。如果您愿意,我可以改写这个问题:一小群开发人员在功能分支中一起工作。如果一个开发人员提交的内容破坏了该分支的构建,则CI系统是否应还原提交?
master
开始。这就是开发和功能分支的用途。这些更改随后进入集成分支之类的地方,您可以在其中测试几个开发人员的所有新功能是否可以一起工作,并且只有在经过测试的情况下才能进入母版。或者至少那是一种可能的工作流程。