tri*_*nth 4 git workflow ruby-on-rails passenger dreamhost
这主要是关于有效Git使用的问题.我应该首先说我不是Rails的专家(至少在生产意义上)并且绝对是Git新手,但是,我有一些使用SVN的经验.
我的问题是我正在尝试创建一个rails应用程序,但不知道在我的计算机上保持开发本地但是能够部署到Dreamhost上的共享主机帐户的最佳方法.
我认为Git会允许我这样做,但我不完全确定如何.我想在服务器上创建一个Git repo,并在每次提交后将我的本地内容推送到它上面.我已经阅读了一些关于Git的教程,但我仍然对于该怎么做感到困惑.替代方法是只使用FTP并复制文件,但这似乎不对.
有没有人有一些我可以使用的第一步和/或命令?这种部署方法是否可疑还是有更好的方法吗?
我为威斯康星州的一个铜管乐队运行一个Rails网站,其设置与你所描述的非常相似,尽管它目前在hostingrails.com之外运行.我在github上托管我的代码,虽然没有理由你不能私下托管它.我的流量在过去的一年半中发生了变化,因此从短期来看,只需要你所需要的东西.
在我的流程的中心,我已经设置了一个半精细的Capistrano脚本来处理部署,包括一个单独的暂存环境,它生成生产数据库的完整副本以进行测试.这需要一段时间(几小时,而不是几天)来构建,但它是如此值得.
current_release:现场制作代码.紧急错误修正在这里.master:已完成的功能已准备好发布.这些功能在这里等待现场测试.紧急错误修正从中合并current_release.<feature_name>:正在开发的功能.我尝试在任何特定时间都没有超过3个.紧急错误修正被合并,并master经常合并以保持功能最新.有了这个设置,我可以同时处理好几件事.每周一周(因为这远不是全职职业),我做了以下几点:
我在功能分支中编辑.我来回切换,感到无聊,兴奋,无论如何.有时我会合并两个共同成长的功能.
[edit]
$ git commit
$ git push github [feature]
准备好进行即时部署的已完成功能将一次一个地合并到master分支机构.
$ git checkout master
$ git merge [feature]
[fix immediate problems or inconsistencies]
$ git commit
$ git push github master
$ git branch -d [feature]
我将网站上传到私人网址(恰好是stage.madisonbrass.com).该分级环境总是从拉master分支.
$ cap staging deploy # master is now live at stage.madisonbrass.com
Bam,在我测试的时候,我在公共网站上发现了一个紧急错误.幸运的是,我已经current_release单独工作,因此可以单独修复和部署它.
$ git checkout current_release
[fix bug]
$ git commit
$ git push github current_release
$ cap production deploy
我回到master分支机构,首先合并紧急修复程序.
$ git checkout master
$ git merge current_release
我继续测试master.希望不会出现新问题,但如果他们这样做我将它们修复为master,我将这些更改合并到current_release另一个生产部署中.
$ git checkout current_release
$ git merge master
$ git push github current_release
$ cap production deploy
我拆除了我的暂存环境,以免以某种方式被搜索引擎索引.
$ git staging teardown
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |