分支策略 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 个提交的功能。在那种情况下,我们认输并说我们会等到我们可以发布整个事情。作为一般经验法则,无论何时您为早期版本挑选一个功能,测试都是关键。
我们正在进行基于功能的开发,一旦 PR 获得批准,它就会合并回 master
。
当 master
的功能稳定后,我们会创建一个 release
分支。
任何 release
特定更改将再次合并回 master 现在进行增量更改(新更改)。
由于定期更改现在发生在 master
,我的同事要求从 master
将作为 release
分支以推动生产。
嗯,由于该功能是针对增量更改开发的,因此根据 'release' 分支重新开发可能需要大量时间。
请建议正确的分支策略来处理这种情况。
听起来您在概念上想要进行修补程序。为此,您从当前正在生产中的提交创建一个新分支。 (或者,如果发布分支仍然存在并且您更喜欢使用它,则可以。)让我们将该分支称为您的 hotfix
分支。
现在你从 master
中获取你需要的一组较新的提交,然后 cherry-pick 它们,按照它们创建的相同顺序,进入 hotfix
支线。如果该功能中有很多提交,挑选可能会很麻烦,因此您可以使用 git rebase --onto
with 3 arguments 在单个命令中有效地挑选一系列提交。
正如您所指出的,您是否可以成功地挑选提交取决于更改是什么,以及它们所依赖的其他提交。也许如果该功能是独立的,它就可以毫无问题地工作。我会说我所做的大部分樱桃选择都完美无缺。有时,由于依赖关系,我最终不得不引入额外的提交。有一次我试图引入一组交织在一起的提交,以至于我最终需要挑选超过 100 个提交来引入一个本身只有 5 个提交的功能。在那种情况下,我们认输并说我们会等到我们可以发布整个事情。作为一般经验法则,无论何时您为早期版本挑选一个功能,测试都是关键。