Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 Capistrano:如何将git存储库保留在live/deployed上_Ruby On Rails_Git_Capistrano_Capistrano3 - Fatal编程技术网

Ruby on rails Capistrano:如何将git存储库保留在live/deployed上

Ruby on rails Capistrano:如何将git存储库保留在live/deployed上,ruby-on-rails,git,capistrano,capistrano3,Ruby On Rails,Git,Capistrano,Capistrano3,好的,使用capistrano 3.2和Rails 4.2 简单地说,我希望在live server上的每个版本都有一个完整的git repo。我知道Cap使用git克隆文件,但afik默认情况下会删除.git文件夹。我发誓我以前在Capistrano的早期版本上做过这项工作,但没有多少文档或谷歌搜索找到正确的设置。或者如果我有一个奇怪的Cap版本 在我开始讨论“live上的版本控制?永远不要更改live,在你的开发服务器上开发你这个白痴!” 如果某些事情超出了您的控制,或者发生了紧急情况,那么

好的,使用capistrano 3.2和Rails 4.2

简单地说,我希望在live server上的每个版本都有一个完整的git repo。我知道Cap使用git克隆文件,但afik默认情况下会删除.git文件夹。我发誓我以前在Capistrano的早期版本上做过这项工作,但没有多少文档或谷歌搜索找到正确的设置。或者如果我有一个奇怪的Cap版本

在我开始讨论“live上的版本控制?永远不要更改live,在你的开发服务器上开发你这个白痴!”

如果某些事情超出了您的控制,或者发生了紧急情况,那么在live上拥有一个活跃的git回购协议是非常宝贵的,您别无选择,只能使用monkey补丁。因为现在你有了git显示的变更,你可以提交它,然后把它推回到你的中央回购协议中,让它整齐地向上流动。它以前救了我的命,这意味着我不必手动复制我知道的已经解决了“实时”问题的内容。 不管怎么说,辩护结束了。有人知道怎么做吗

我为这个简单的问题道歉,我认为这是不幸的谷歌富让我在搜索这个时没有答案。搜索“Capistrano Leve git on live”或其他类似术语时,都会被使用git进行部署所淹没


提前欢呼。

这不是小事。Capistrano使用管道通过
tar
创建发布文件夹。假设,您可以覆盖执行此操作的任务,但您可能会花费超过其价值的精力。我强烈建议您考虑创建一个工作流,在其中提交修补程序并再次推送。我们使用生产部署点所在的生产分支,因此您可以将更改提交给生产分支并限制生产部署,然后将更改合并回开发分支

如果您确实选择尝试并覆盖此项,请查看Capistrano源以获取。它使用类,因此您需要对其进行子类化和重写,然后重写任务以使用您的类。Capistrano基本上是这样的,所以请查找有关重写Rake任务的文档,例如


祝你好运

这不是小事。Capistrano使用管道通过
tar
创建发布文件夹。假设,您可以覆盖执行此操作的任务,但您可能会花费超过其价值的精力。我强烈建议您考虑创建一个工作流,在其中提交修补程序并再次推送。我们使用生产部署点所在的生产分支,因此您可以将更改提交给生产分支并限制生产部署,然后将更改合并回开发分支

如果您确实选择尝试并覆盖此项,请查看Capistrano源以获取。它使用类,因此您需要对其进行子类化和重写,然后重写任务以使用您的类。Capistrano基本上是这样的,所以请查找有关重写Rake任务的文档,例如


祝你好运

为什么不能像在普通情况下那样,再次运行
cap production deploy
来推出新代码?我认为您必须深入研究一些代码,才能让Capistrano做您想做的事情。为什么您不能像在普通情况下一样再次运行
cap production deploy
,推出新代码?我想你必须深入研究一些代码才能让Capistrano做你想做的事。