生产中的功能发布

feature release in production

现在我们有两个主要分支:develop,其中包括所有尖端功能,以及 master,它基本上已准备好投入生产。当我们进行生产发布时,有时我们只想发布一些 QA 通过的 developmaster 中的功能,而将所有其他功能留在 develop 中以保持 QAing。我知道我们可以 cherry-pickdevelopmaster。但问题是首先,一个一个地挑选有点乏味和麻木。其次,这有时可能会在您的历史记录中创建重复提交,因为 git 不理解那些 cherry-picked 提交实际上是相同的。那么有没有更好的清洁方法来做到这一点?

对于您当前的工作流程,我想不出更好的方法,但是如果您针对不同的功能使用不同的分支,那么这会变得容易得多。您可以 merge 功能分支到 develop 进行测试,在功能分支上进行任何必要的更改,然后在通过 QA 后 mergemaster。合并将保留分支历史记录,允许 git 跟踪哪些提交已应用于不同的分支。

各种git workflows here都有很好的描述,但至于哪个最好是见仁见智。