如何在项目中进行小的更改

时间:2014-12-12 09:48:24

标签: ruby-on-rails git

我有一些在Github上发布的Rails项目( project1 ) 我想基于 project1 构建另一个Rails项目( project2 )。
Project2 正在处理与project1数据库具有相同结构的数据库。但是 project1 数据库还有其他内容 Project1 有几个静态页面,将在 Project2 中更改 此外, Project2 网站标题和网站菜单文字会有细微变化 Project1和Project2中的逻辑,算法等相同。

我想摆脱冗余。我不想在Github上为 Project2 创建一个新的存储库。我想在 Project1 代码上构建 Project2 ,但使用其他database.yml以及静态页面和网站标题文本中的一些更改。

这样做的最佳方法是什么?

更新
此外,我希望 project1 的逻辑(控制器,模型等)的更改将反映到 project2

2 个答案:

答案 0 :(得分:2)

您可以通过执行git branch project2然后git checkout project2之类的操作来分支您的主项目,并且您从该点开始执行的所有工作只会发生在project2中。

如果您需要返回project1,则可以提交或存储更改,并执行git checkout project1以返回上一个代码。

此外,如果您需要从project1和&#34进行一些更改,请将其带入"在您的project2分支机构中,您可以使用git cherry-pick [SHA]。要找出SHA哈希值,您需要检查该分支的日志,即git log project1,并将顶部的部分视为commit 5479d1834c281b29a7948e426e73bfdf27032569,其中包含长串数字和letters是SHA哈希。

答案 1 :(得分:1)

  

我想摆脱冗余。

您可以通过在中创建新的 Project2 作为附加项目来避免冗余,但是为了重用 Project1 的代码它。您应将 Project1 形成为gem,然后将其发布。在 Project2 初始值设定项中,只包括 Project1 s',并为viewscontrollers和{做同样的事情{1}}。所以基本上在 Project2 中,您只需要创建应该专门为项目更改的部分。

所以只需使用这两件事:

  1. 递归导入您可以使用Rails Engine完成的Rails功能。所以

      

    引擎可以被视为为其主机应用程序提供功能的微型应用程序。   因此,引擎和应用程序可以被认为是几乎相同的东西,只是有微妙的差异。

  2. 然后您可以添加并使用models方法,该方法将从 Project1 加载子模块以重复使用它,或者在 Project2的