使用分支策略与Heroku的好Git的部署?
-
18-09-2019 - |
题
什么是使用Git +的Heroku(Ruby on Rails的)?
很好用的部署策略目前我和我的出身Git仓库的工作方式:所有功能(或“故事”)的首次检出的树枝,然后得到合并主推原产地
。任何被推到原点/主触发拉动新轨道代码到临时区域(简单网络服务器导轨)的脚本。
在时机成熟时,我推了新的生产版本的Heroku,我应该创建一个新的分支(被称为像production_version_121),并推动以某种方式向Heroku的?
在理想情况下,我想挑选哪些从以前的开发版本,我应该包括到生产分支部件...测试,并推到Heroku的。
例如,我可能不希望所有最新的代码推送到生产。我可能要功能“一”,我工作过的和功能“C”都合并到生产某种方式,在不包括实验性功能“B”,这需要更多的调试。
N.B。我要去尝试避免在Capistrano的第一和得到的东西手动工作了。
思考?最佳实践?
解决方案
在Gemcutter项目中,我们简单地具有的 生产 强>科。我们希望看到对生产现场的任何更改得到合并到分支,然后与已部署的:
git push heroku production:master
在staging
分支用于将临时网站(也在Heroku)类似的目的
其他提示
自从予读文森特Driessen的的一个成功的GIT中分支模型一>,我已经上瘾了。我的整个公司(US 8)现在已经标准化了这种模式和其他一些地方我已经与也使用它也开始查询。
大多数人都我已经表明,它说,他们正在做的已经类似的东西,发现它很容易适应。
概括地说,你有2个分支是永久的(主机和显影)。大多数时候,你会仅仅是让分支开发和合并它们放回开发的。事情变得有点复杂,当你进入做生产的排放和修补程序,但阅读后几次之后,就变成根深蒂固。
甚至还有所谓的混帐流来帮助你的命令行工具。
有多种方式去了解这一点,这真的取决于你的喜好。
我给你一个可能的策略,把我的头顶部:鉴于你已经有一个使用主自动化升级安装,我建议建立一个“生产”分支。当你想促进修复/功能来制作,你只想合并特性分支到你的“生产”分支。
git checkout production
git pull . my-topic-branch
(resolve any conflicts)
当您准备实际的按的代码到生产服务器,你应该的使用唯一的名称(可能带有时间戳)标记分支。然后,你只需按生产分公司的Heroku。
git checkout production
git tag release-200910201249
我建议创建一个脚本或混帐别名自动为时间戳标记,因为使用一致的命名方案是非常重要的。我用的是这样的:
git config alias.dtag '!git tag release-`date "+%Y%m%d%H%M"`'
这允许我做只需键入git dtag
当我想用标记时间戳的释放。
您可以使用git tag
查看您的标签和使用git show release-1234
查看。有关标记的更多信息,请运行git help tag
。您也可以找到这个 Github的指南上标注有帮助。我也建议你阅读了其他人的工作流程(这里的一个很好的书面记录)和挑选你的作品。