git与开发,阶段和生产分支

这篇文章听起来很有趣,但是我敢肯定这些图是错误的。[http://guides.beanstalkapp.com/version-control/branching-best-practices.html]

应该不是DEVELOPMENT> STAGING> PRODUCTION吗?

合并只能朝一个方向进行:功能和错误修复   在自己的分支机构或开发阶段进行测试。   经过测试后,您可以将开发中的更改合并到   生产。

在这里,我有点困惑。 所以我将暂存合并为Master或将Master合并为暂存?

我正在使用一个名为SmartGit的客户端,对此我感到困惑。 通常,我为功能创建一个分支,提交给它,然后切换到master并将其合并到分支(转发)。 因此,在这个具有暂存和生产功能的新工作流程中,我创建了这两个额外的分支,然后为我的功能从master(aka dev)创建了一个分支。 提交,然后切换到暂存并合并(转发)到我的功能分支? 听起来正确吗?


实际上,使之如此令人困惑的是,Beanstalk员工支持他们非标准的Staging使用(它在开发图表之前出现,这不是错误![https://twitter.com/Beanstalkapp/status/306129447885631488]

决定忘掉Beanstalk以及Github。


自从我发布了这篇文章以来,Beanstalk的人就接受了我的提示并重命名了他们的阶段,现在将Development称为“ Stable”。

Max Hodges asked 2019-10-09T16:17:05Z
5个解决方案
65 votes

这里的思考过程是,您将大部分时间都花在development上。在开发时,您将创建feature分支(从development开始),完成功能,然后合并回development。然后可以将其添加到最终产品中 版本合并到production中。

有关此方法的更多详细信息,请参见成功的Git分支模型。

eykanal answered 2019-10-09T16:17:32Z
5 votes

我们做的不同。 恕我直言,我们以一种更简单的方式进行操作:在master中,我们正在开发下一个主要版本。

每个较大的功能都有其自己的分支(源自母版),并且开发人员会在母版上定期将其重新建立基础(+强制按下)。 仅当一个开发人员使用此功能时,重新部署才能正常工作。 如果功能完成,它将重新基于主机,然后将主机快速转发到最新的功能提交。

为避免重新调整/强制推送,还可以将主更改定期合并到功能分支,如果完成,则将功能分支合并到主分支(正常合并或壁球合并)。 但是恕我直言,这会使功能分支变得不清楚,并使重新排序/清理提交变得更加困难。

如果要发布新版本,我们会在主版本之外创建一个分支,例如 release-5仅修复了一些错误。

Mot answered 2019-10-09T16:18:26Z
3 votes

实际上,使之如此令人困惑的是,Beanstalk员工支持他们非标准的Staging使用(它在开发图表之前出现,这不是错误!

[https://twitter.com/Beanstalkapp/status/306129447885631488]

Max Hodges answered 2019-10-09T16:19:00Z
1 votes

git最好的事情之一就是您可以更改最适合自己的工作流程。.我确实使用了[ 时间,但是您可以使用任何适合您需求的工作流程

JohnNY answered 2019-10-09T16:19:29Z
-3 votes

从我博客上的帖子中:

nvie的“ gitflow”工作流程有两个问题:令人困惑   更改了“主”分支的含义,并且不清楚   证明增加一个长期存在的分支机构的成本是合理的。 两个问题   可以通过[...]解决

Joshua S answered 2019-10-09T16:20:04Z
translate from https://stackoverflow.com:/questions/15072243/git-with-development-staging-and-production-branches