Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails+;具有Github和多个分支的Capistrano_Ruby On Rails_Git - Fatal编程技术网

Ruby on rails 使用Rails+;具有Github和多个分支的Capistrano

Ruby on rails 使用Rails+;具有Github和多个分支的Capistrano,ruby-on-rails,git,Ruby On Rails,Git,在我的Rails应用程序中,我使用Git、GitHub和Capistrano。我们有2台服务器(暂存和生产) 到目前为止,我会在本地机器上进行代码更改并将其推送到GitHub,然后在部署期间Capistrano会从GitHub复制到任一服务器 现在我已经开始在Git中使用分支。我在我的机器上本地创建了两个分支,dev和prod。我是目前唯一的开发者。我目前只有GitHub上的分支主机 问题: 1) 我应该在现有GitHub rpo上创建dev和prod分支,还是应该为暂存和生产创建单独的GitH

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

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

现在我已经开始在Git中使用分支。我在我的机器上本地创建了两个分支,
dev
prod
。我是目前唯一的开发者。我目前只有GitHub上的分支主机

问题:

1) 我应该在现有GitHub rpo上创建
dev
prod
分支,还是应该为暂存和生产创建单独的GitHub回购

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


3) 如果使用单独的回购协议,我如何将分支机构推向正确的分支机构?

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

分支实际上被设计成一个安全的地方,在那里你可以脱离你的
主代码
(你的工作代码),尝试一些实验性的东西。所以真正的
master
是你的生产分支,而开发是你从中获得的任何分支。在其他分支上进行更改后,提交这些更改,然后使用

git checkout master

git merge newbranch

将新牧场合并到你的主人那里。

你只需要一次回购

Capistrano具有控制要部署的分支的分支设置。我通常会加上

set :branch, ENV['BRANCH'] || 'master'
到我的deploy.rb,以便使用

cap staging deploy BRANCH=some_branch

就我个人而言,我为每个版本创建了一个新的分支,这样就可以很容易地将小补丁部署到生产环境中——我只需选择该版本的分支,然后重新部署该分支。

但是,当我在开发环境中做一些更改,合并到本地主机,推到GITHUB时会发生什么,并部署到临时服务器-然后生产服务器需要热修复程序?是“get”还是“git”合并?它应该是
git merge newbranch
应该是“git merge”will edigt