何时在 git 流程中创建发布分支?
When to create release branch in git flow?
我们的团队正在使用 git 流程,我们大约每两个月进行一次持续发布。我对什么时候应该创建发布分支有点困惑。
例如在下面的例子中,在上一个版本中有一个错误,它应该在这个版本中修复,我应该先创建发布分支然后从发布分支创建错误修复分支还是从开发中创建它,做所有功能开发并合并回开发,然后从开发创建发布分支?
是不是应该直接push小bug到release分支而不创建bugfix分支?
我是否应该将来自开发分支的来自功能分支或错误修复分支的单个提交合并到发布分支?
通常一个发布分支是从开发分支分支出来的。在发布分支上,版本会递增,然后合并到主分支中。将 release 分支合并到 master 分支并返回到 develop 分支后,您应该另外从 master 分支创建一个 Tag 并根据先前发布版本的版本号命名它。
For example in following case, there is a bug at last release and it should be fixed at this release, should i create release branch firstly and create bugfix branch from release branch or just create it from develop, do all feature development and merge back to develop, then create release branch from develop?
在这种情况下,您将为错误创建功能或错误修复分支,修复它并将其合并到开发中。之后,您将进行所有功能开发,一旦您准备好发布,从开发分支创建一个发布分支并按上述步骤进行。
Should I push little bugs to release branch directly without creating bugfix branch?
你不应该在发布分支上开发,而应该在开发分支上开发。 release分支合并master和develop后可以删除,下个版本发布时重新创建
Should I just merge one single commit from develop which comes from feature branch or bugfix branch to release branch?
如果您想要发布仅包含 1 个功能或 1 个错误修复的新版本,只需从开发分支创建一个新的发布分支,然后按照上述创建发布的步骤继续操作。没有理由不这样做(即,如果您想创建一个仅包含 1 个错误修复的错误修复版本)...
有关 GitFlow 的更多详细信息,请参阅 here
因此,如果您大约每两个月进行一次连续发布,那么我建议您开始将下一个版本 (1.0) 开发工作纳入主开发 branch.Once 您的开发是根据发布 (1.0) 承诺完成的然后剪切发布分支并将其部署到您的 staging/pre-prod/QA 环境中。当您的版本 (1.0) 正在测试时,您可以让您的开发人员在下一个版本(1.x 或 2.x)的主要开发分支上工作。所以这不会停止您的开发。现在,如果 QA 在你的 release(1.0) 中发现了一个缺陷,那么让开发人员在主开发分支上修复它,然后你可以挑选那个特定的修复并将它与 release(1.0) 分支合并。对于 QA 在测试期间发现的所有缺陷,请遵循此方法。一旦 release(1.0) 成功测试并注销,将其部署到 PROD 并将其合并到 master 分支。
问题1:如果上次release有bug,本次release修复,是先创建release分支然后从release分支创建bugfix分支还是直接从develop创建,完成所有功能开发并合并回开发,然后从开发创建发布分支?
Answer:If 您在开发人员仍在为发布(1.x)编写代码时发现版本(1.0)中的 PROD 错误,然后将其编码并在 1.x 中作为用户的其他功能进行修复 stories.How 如果你在发布分支(1.x)已经从主要开发中删除后发现发布(1.0)中的 PROD 错误,那么你有两个选择。
A) 如果它是一个紧急问题,那么从 master 创建一个修补程序分支,在 non-prod 环境中对其进行修复和测试,并将其部署到 PROD。由于它的修补程序是紧急的,因此在对修补程序进行测试时,所有测试和常规发布 (1.x) 的其他活动都需要暂停。
B) 如果它不是修补程序,则按照我在上面针对缺陷解释的相同方法进行操作。这意味着将它分配给开发人员并让他修复错误并签回主要开发 branch.Then cherry pick the change and merge it to release(1.x) branch and have it tested and deploy it to产品。
问题:我是否应该在不创建错误修复分支的情况下直接将小错误推送到发布分支?
Answer:You 可以跳过 bugfix 分支,但这完全取决于时间。如果问题很紧急,那么您必须从 master 创建一个 bugfix/hotfix 分支,以便可以快速测试和部署它。从 master 创建分支将确保 un-tested 和 non-hotfix 相关代码不会被部署 hotfix.If 问题不紧急然后你可以让它通过发布分支本身。
问题:我是否应该将来自开发分支的来自功能分支或错误修复分支的单个提交合并到发布分支?
答:当然,这叫做“Cherry picking”,我们都这样做,包括 google 团队。
我们的团队正在使用 git 流程,我们大约每两个月进行一次持续发布。我对什么时候应该创建发布分支有点困惑。
例如在下面的例子中,在上一个版本中有一个错误,它应该在这个版本中修复,我应该先创建发布分支然后从发布分支创建错误修复分支还是从开发中创建它,做所有功能开发并合并回开发,然后从开发创建发布分支?
是不是应该直接push小bug到release分支而不创建bugfix分支?
我是否应该将来自开发分支的来自功能分支或错误修复分支的单个提交合并到发布分支?
通常一个发布分支是从开发分支分支出来的。在发布分支上,版本会递增,然后合并到主分支中。将 release 分支合并到 master 分支并返回到 develop 分支后,您应该另外从 master 分支创建一个 Tag 并根据先前发布版本的版本号命名它。
For example in following case, there is a bug at last release and it should be fixed at this release, should i create release branch firstly and create bugfix branch from release branch or just create it from develop, do all feature development and merge back to develop, then create release branch from develop?
在这种情况下,您将为错误创建功能或错误修复分支,修复它并将其合并到开发中。之后,您将进行所有功能开发,一旦您准备好发布,从开发分支创建一个发布分支并按上述步骤进行。
Should I push little bugs to release branch directly without creating bugfix branch?
你不应该在发布分支上开发,而应该在开发分支上开发。 release分支合并master和develop后可以删除,下个版本发布时重新创建
Should I just merge one single commit from develop which comes from feature branch or bugfix branch to release branch?
如果您想要发布仅包含 1 个功能或 1 个错误修复的新版本,只需从开发分支创建一个新的发布分支,然后按照上述创建发布的步骤继续操作。没有理由不这样做(即,如果您想创建一个仅包含 1 个错误修复的错误修复版本)...
有关 GitFlow 的更多详细信息,请参阅 here
因此,如果您大约每两个月进行一次连续发布,那么我建议您开始将下一个版本 (1.0) 开发工作纳入主开发 branch.Once 您的开发是根据发布 (1.0) 承诺完成的然后剪切发布分支并将其部署到您的 staging/pre-prod/QA 环境中。当您的版本 (1.0) 正在测试时,您可以让您的开发人员在下一个版本(1.x 或 2.x)的主要开发分支上工作。所以这不会停止您的开发。现在,如果 QA 在你的 release(1.0) 中发现了一个缺陷,那么让开发人员在主开发分支上修复它,然后你可以挑选那个特定的修复并将它与 release(1.0) 分支合并。对于 QA 在测试期间发现的所有缺陷,请遵循此方法。一旦 release(1.0) 成功测试并注销,将其部署到 PROD 并将其合并到 master 分支。
问题1:如果上次release有bug,本次release修复,是先创建release分支然后从release分支创建bugfix分支还是直接从develop创建,完成所有功能开发并合并回开发,然后从开发创建发布分支? Answer:If 您在开发人员仍在为发布(1.x)编写代码时发现版本(1.0)中的 PROD 错误,然后将其编码并在 1.x 中作为用户的其他功能进行修复 stories.How 如果你在发布分支(1.x)已经从主要开发中删除后发现发布(1.0)中的 PROD 错误,那么你有两个选择。 A) 如果它是一个紧急问题,那么从 master 创建一个修补程序分支,在 non-prod 环境中对其进行修复和测试,并将其部署到 PROD。由于它的修补程序是紧急的,因此在对修补程序进行测试时,所有测试和常规发布 (1.x) 的其他活动都需要暂停。 B) 如果它不是修补程序,则按照我在上面针对缺陷解释的相同方法进行操作。这意味着将它分配给开发人员并让他修复错误并签回主要开发 branch.Then cherry pick the change and merge it to release(1.x) branch and have it tested and deploy it to产品。
问题:我是否应该在不创建错误修复分支的情况下直接将小错误推送到发布分支? Answer:You 可以跳过 bugfix 分支,但这完全取决于时间。如果问题很紧急,那么您必须从 master 创建一个 bugfix/hotfix 分支,以便可以快速测试和部署它。从 master 创建分支将确保 un-tested 和 non-hotfix 相关代码不会被部署 hotfix.If 问题不紧急然后你可以让它通过发布分支本身。
问题:我是否应该将来自开发分支的来自功能分支或错误修复分支的单个提交合并到发布分支? 答:当然,这叫做“Cherry picking”,我们都这样做,包括 google 团队。