3

我有一个 Rails 网站,它分为两个独立的项目——公共网站和管理网站。

由于两个站点都使用相同的数据库,因此模型在应用程序之间共享(实际上现在它们是重复的)。我在这里遇到的问题是,当公共项目中发生模型更新时,我需要将更改复制到管理项目中。

我环顾四周,注意到有一个问题的答案建议使用 svn:external 或 git submodule,但我不完全确定如何执行此操作。

本质上,我的目标是能够仅在一个地方进行更改,将这些更改提交到git,然后在我需要更新时能够在另一个项目中提取更改。

4

2 回答 2

1

不要使用子模块。它们很丑陋,难以理解和维护。更好的是使用子树。

Git 子树是自 1.7.11 以来 GIT 的一部分,我写了一篇关于在 Rails 应用程序之间共享代码的文章:http: //igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to -share-code-between-rails-applications/

简而言之:是的 git-subtree 工作得很好!

于 2013-03-28T12:12:20.540 回答
1

你需要:

  • 在一个地方提交子模块
  • 提交主项目(说的公共网站)
  • 转到另一个主项目(管理站点)中的相同子模块
  • 拉取最新内容(更改该子模块的 HEAD)
  • 在主(管理员)项目中向上移动一个目录
  • 提交(记录您现在引用了不同版本的子模块)

另请参阅子模块的真实性质

于 2010-04-27T04:22:24.880 回答