【问题标题】:Using Rails + Capistrano with Github and multiple branches将 Rails + Capistrano 与 Github 和多个分支一起使用
【发布时间】:2013-04-24 14:04:08
【问题描述】:

在我的 Rails 应用程序中,我使用 Git、GitHub 和 Capistrano。我们有 2 台服务器(暂存和生产)。

到目前为止,我会在本地机器上进行代码更改并将它们推送到 GitHub,然后在部署期间 Capistrano 会从 GitHub 复制到任一服务器。

现在我已经开始在 Git 中使用分支了。我在我的机器上本地创建了 2 个分支,devprod。我是目前唯一的开发人员。我目前在 GitHub 上只有分支 master。

问题:

1) 我应该在现有的 GitHub rpo 上创建 devprod 分支,还是应该有一个单独的 GitHub 存储库用于暂存和生产?

2) 如果我确实添加了分支,我将如何告诉 Capistrano 使用 dev 分支进行暂存,使用 prod 分支进行生产?

3) 如果使用单独的 repos,如何将分支推送到右侧?

【问题讨论】:

    标签: ruby-on-rails git


    【解决方案1】:

    我不会使用单独的分支进行开发和生产。我会做一个“实验”分支。

    分支真的被设计成一个安全的地方,您可以在其中中断master(您的工作代码),并尝试一些实验性的东西。所以真的master 你的生产分支,而开发是你从中得到的任何分支。当您在其他分支上进行更改后,提交它们,然后使用

    git checkout master
    
    git merge newbranch
    

    newbranch 合并到您的主人。

    【讨论】:

    • 但是,当我在 DEV 中进行一些更改、合并到本地主服务器、推送到 GITHUB 并部署到临时服务器时会发生什么 - 那么生产服务器需要修补程序吗?
    • 是'get'还是'git'合并?
    • 应该是git merge newbranch
    • 应该是`git merge`才会编辑
    【解决方案2】:

    你只需要一个 repo。

    Capistrano 有一个分支设置来控制要部署的分支。我一般加

    set :branch, ENV['BRANCH'] || 'master'
    

    到我的 deploy.rb 以便我可以部署不同的分支

    cap staging deploy BRANCH=some_branch
    

    我个人为每个版本创建一个新分支,因此很容易将小修复部署到生产环境 - 我只是挑选该版本的分支并重新部署该分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2021-03-03
      • 2011-06-28
      相关资源
      最近更新 更多