【问题标题】:A Rails project from multiple Git repositories来自多个 Git 存储库的 Rails 项目
【发布时间】:2011-12-02 14:13:29
【问题描述】:
是否可以拥有来自多个 Git 存储库的 Rails 应用程序?目前我有一个包含所有代码的主应用程序,我手动将粘贴代码从其他存储库复制到其中。其他存储库现在是:我的 Twitter Bootstrap 分支的存储库和 CSS/HTML/Javascript(前端)代码的存储库。前端存储库用于创建大量测试,主要用于移动 safari。它不支持数据库,仅用于为我的应用程序创建和管理前端。
我想要这样的设置:
- 我的 Bootstrap fork 存储库(添加了样式、scss 和 coffeescript)
- 我的视图存储库(html、自定义 css/javascript、针对各种浏览器和平台的测试、不支持活动记录且几乎没有任何模型)
- 其他所有内容的存储库
我希望保留这些独立的存储库。或者我的所有代码都拥有一个,但也保留单独的存储库。
【问题讨论】:
标签:
ruby-on-rails
git
projects-and-solutions
【解决方案2】:
如果你不习惯使用 git 子模块,还有一个替代方法。您可以将您的应用程序分解为 Engines 或 Railties。例如,如果您的 gemfile 中有一个 Rails 3.1 应用程序,您可以引用一个外部引擎,如
gem 'my_gem_name', :path => '../path/to/my/custom_engine'
同样可以通过git直接引用引擎如
gem 'bootstrapped', :git => 'git@github.com:entropillc/bootstrapped.git'
像往常一样,修改 gemfile 后,做一个 bundle install
重要提示,如果您引用的是 git 存储库,那么您需要将所有文件更改推送到引擎的远程存储库,然后在 Rails 主项目中执行“捆绑更新”以获取更改。
通过使用本地路径,您将不需要更新您的包。
这样做的缺点是一切都必须在 gem 中,优点是如果您主要是 Rails 开发人员,重用 gem 可以帮助您更快地启动项目。