分支策略 GIT

Branching Strategy GIT

我们正在进行基于功能的开发,一旦 PR 获得批准,它就会合并回 master

master 的功能稳定后,我们会创建一个 release 分支。

任何 release 特定更改将再次合并回 master 现在进行增量更改(新更改)。

由于定期更改现在发生在 master,我的同事要求从 master 将作为 release 分支以推动生产。

嗯,由于该功能是针对增量更改开发的,因此根据 'release' 分支重新开发可能需要大量时间。

请建议正确的分支策略来处理这种情况。

听起来您在概念上想要进行修补程序。为此,您从当前正在生产中的提交创建一个新分支。 (或者,如果发布分支仍然存在并且您更喜欢使用它,则可以。)让我们将该分支称为您的 hotfix 分支。

现在你从 master 中获取你需要的一组较新的提交,然后 cherry-pick 它们,按照它们创建的相同顺序,进入 hotfix支线。如果该功能中有很多提交,挑选可能会很麻烦,因此您可以使用 git rebase --onto with 3 arguments 在单个命令中有效地挑选一系列提交。

正如您所指出的,您是否可以成功地挑选提交取决于更改是什么,以及它们所依赖的其他提交。也许如果该功能是独立的,它就可以毫无问题地工作。我会说我所做的大部分樱桃选择都完美无缺。有时,由于依赖关系,我最终不得不引入额外的提交。有一次我试图引入一组交织在一起的提交,以至于我最终需要挑选超过 100 个提交来引入一个本身只有 5 个提交的功能。在那种情况下,我们认输并说我们会等到我们可以发布整个事情。作为一般经验法则,无论何时您为早期版本挑选一个功能,测试都是关键。