单个文件git部署到服务器

时间:2011-07-04 12:48:35

标签: git deployment capistrano

我正在使用Capistrano来部署rails应用程序;如何在不发布新版本的情况下在服务器上更新一个文件?

例如:

假设我只对我的UserController.rb.进行了更改并将其提交到git服务器, 如何在不进行新部署的情况下将此更新发送到服务器上。

3 个答案:

答案 0 :(得分:11)

Capistrano有一个部署任务,用于更新不需要完全部署的单个文件。

cap -e deploy:upload

在你的情况下,它可能是这样的:

cap deploy:upload FILES='app/controllers/UserController.rb'

您可能还需要重新启动应用

cap deploy:restart

答案 1 :(得分:2)

你应该通过Capistrano发布新版本。

部署工具的目的是为您提供可重复的结果,并帮助您跟踪已部署的内容。绕过这个小过程的过程意味着你失去了这两个优点。如果您认为运行整个部署过程进行简单的更改是过度的,那么您应该努力简化流程(或确保您永远不必执行简单的修复 - 祝您好运!)。

实际上,我确信很多人只会在服务器上手动编辑文件。由于上述原因,不推荐使用。如果你认为权衡是值得的,那就是你的电话:)。

作为免责声明:我不是红宝石开发者,我从未真正使用过Capistrano,我的建议是通用的,而不是特定于这些技术。也许有一种特殊的方法来推动系统中的小变化 - 如果是这样的话,我已经预料到会有一个答案指出来......

答案 2 :(得分:0)

Capistrano 3中不再存在任务import 您可以添加此gem https://github.com/Reiknistofa/capistrano-upload以将其恢复。