什么是使用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)类似的目的

其他提示

有多种方式去了解这一点,这真的取决于你的喜好。

我给你一个可能的策略,把我的头顶部:鉴于你已经有一个使用主自动化升级安装,我建议建立一个“生产”分支。当你想促进修复/功能来制作,你只想合并特性分支到你的“生产”分支。

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的指南上标注有帮助。我也建议你阅读了其他人的工作流程(这里的一个很好的书面记录)和挑选你的作品。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top