16

我正在尝试向我的团队介绍 Git 流程。我们是一个相当小的团队,而且非常敏捷。我们希望每天发布一次,这意味着我们只有有限的时间来测试当天的所有更改。业务团队希望能够控制正在发布的功能,尽管这并不理想。

Git 流程似乎不能很好地适应这一点。从开发中删除发布分支后,将所选功能合并到主控的最佳方式是什么。樱桃采摘是唯一的选择吗?有没有更好的办法?

4

2 回答 2

18

git flow如果业务团队想要控制下一个版本中包含哪些功能,则标准处理并不理想。但是其他分支机制也会有同样的问题。

默认结构git flow是您为每个新功能创建一个功能分支。一旦你完成了新特性的构建(和测试),你将分支合并回你的开发分支,然后删除特性分支。然后该功能将包含在下一个版本中。

如果一个特性不应该包含在下一个版本中,你不应该将特性分支合并回开发分支。这是确保它不会被包括在内的最佳方法。它还阻止其他开发人员创建使用(或以其他方式需要)新功能的代码。

我不推荐樱桃采摘。首先,一个功能可以(并且经常会)有多个提交,并且很容易忘记一个。其次,如果功能 B 使用了在功能 A 中添加的代码,并且管理层希望在不发布功能 A 的情况下发布功能 B,那么您很可能会发现功能 B 已损坏。而且这些依赖项并不总是很容易发现。

管理层希望优先考虑新功能是有道理的,但是每个功能都应该在完成(和测试)后尽快合并回开发分支。

于 2012-12-16T17:15:55.710 回答
0

如果每个功能都有自己的分支,只需合并该功能分支。

于 2012-12-14T23:11:14.247 回答