与发展,分期和生产分支git
这篇文章听起来很有趣,但我很肯定这些图是错误的。 http://guides.beanstalkapp.com/version-control/branching-best-practices.html
不应该是DEVELOPMENT
> STAGING
> PRODUCTION
吗?
合并应该只在一个方向上进行:从在自己的分支中完成的function和错误修复,或者在开发阶段进行testing。 一旦经过testing,您可以将开发中的这些变化合并到生产中。
在这里我有点困惑。 所以我把舞台和师父合并到舞台上?
我使用一个名为SmartGit的客户端,我对此感到困惑。 通常我做一个function的分支,提交到它,然后切换到主,并将其合并到分支(向前)。 所以在这个新的工作stream程中使用了Staging和Production,我创build了这两个额外的分支,然后为master创build了一个分支(aka dev)。 提交,然后切换到分段并合并(转发)到我的function分支? 这听起来正确吗?
其实这个让人感到困惑的是,Beanstalk人站在他们非常不规范的Staging使用的背后(它在图中发展之前,这不是一个错误!) https://twitter.com/Beanstalkapp/status/306129447885631488
已经决定忘记Beanstalk,只是与Github。
自从我发布这个版本以来,Beanstalk人员就提出了我的提示并重新命名了他们的阶段,现在称为Development“Stable”。
这里的思考过程就是你把大部分时间花在development
。 在开发中,您将创build一个feature
分支(不在development
),完成该function,然后再合并到development
。 这可以通过合并到production
来添加到最终的生产版本中。
有关此方法的更多详细信息,请参阅成功的Git分支模型 。
我们使它不同,恕我直言,更容易:在master
我们正在研究下一个主要版本。
每个更大的function都有自己的分支(从主分支派生),并且由开发人员定期重新分配(+推)到主分支上(如果单个开发人员使用此function,分派只能正常工作)。 如果function完成,它将被重新装载到主机上,然后主机快速转发到最新的function提交。 为了避免重build/强制推送,还可以将主要更改定期合并到特征分支,并且如果完成,则将特征分支合并到主(正常合并或壁球合并)中。 但恕我直言,这使得function分支不太清楚,使重新sorting/清理提交更加困难。
如果有新版本发布,我们在master之外创build一个side-branch,例如release-5
,只有bug被修复。
实际上让人感到困惑的是Beanstalk人站在他们对Staging的非标准使用之后(他们在图中发展之前,这不是一个错误!
关于git的最好的事情之一是,你可以改变最适合你的工作stream程。我大部分时间使用http://nvie.com/posts/a-successful-git-branching-model/ ,您可以使用任何适合您需求的工作stream程
从我的博客上的一篇文章 :
nvie的“gitflow”工作stream程有两个问题:它混淆地改变了“主”分支的含义,并且没有明确certificate额外的长寿分支的成本。 这两个问题都可以通过[…]