我可以使用Git维护一个应用程序的两个版本吗?

问题描述:

我正在用Ruby on Rails编写应用程序。此应用程序将交付至少两种不同的客户类型。基地总是一样的,但一些意见不同。这主要是它。目前。我可以使用Git维护一个应用程序的两个版本吗?

是否有任何方式,例如使用分支来使用相同的代码库并仅分离视图,例如?我阅读Git手册进行分支,但我仍不确定这是否是实现我所需的最佳方法。

另一个想法是分叉。但是,这很聪明吗?如果我在fork A的代码中更改某些内容,是否可以轻松地将这些更改合并到fork B中?

+0

我有一个类似的要求..我有一个共同代码的主分支。我从主人创建了2个分支,并保持主人一样,并继续在2个分支上工作。 – rubyprince 2011-04-28 09:47:06

+0

感谢您的评论。我将不得不考虑一点。奥古斯托的解决方案听起来很有趣,我一定会尝试找出如何做到这一点。 – 2011-04-28 13:35:44

git中的分支和分支并不差,因为合并支持很好(可能是最好的VCM)。

就个人而言,我不喜欢分支或分叉一个项目,提供不同的定制的主意,因为它可以非常迅速地变得非常困难,例如如果你有15个不同的部署,你会怎么做?

我认为一个更好的方法是构建应用程序,使其行为有所不同,具体取决于某些参数。我很清楚有时这些实现是非常不同的,所以这可能不再有用。 另一种方法是在GEM中构建应用程序的核心,作为应用程序的服务,您为每个客户端定制的唯一东西就是视图。当然,创业板应该足够通用以提供您所需的所有服务。

请与我们分享你决定什么,因为有你的问题没有最佳答案。

它可能会更好地让你的产品在构建或运行时的类型之间进行选择,这样你就可以使用一组源代码。

否则,它可能与分支机构和合并,但你会有更多的难度管理事情。分叉在这个层面基本上是分支的。

我同意@Augusto。您可以在两种不同的环境中运行您的应用程序,即production_A和production_B。从那里,你可以根据Rails.env使用SettingsLogic定义配置,然后选择该视图中使用,例如当你的应用程序中引用这些设置。