我有一个Rails应用程序,我将开始使用不同的服务器。每个服务器的代码库都会略有不同(徽标更改,小功能更改等)。我正在处理一个github仓库,并想知道管理这个的最佳方法是什么。
我最初的思考过程是为每个应用实例创建一个github帐户,这样我就可以在应用程序之外维护不同的实例。例如,有一个用于server1 / instance1的github帐户,另一个用于server2 / instance2。
我的另一个想法是克隆当前的代码库,将其推送到新的github帐户,然后重命名,并添加适当的git远程凭据和ssh密钥以正确推送/拉出。
基本上我试图在多台服务器上维护相同的应用程序,但对每个应用程序实例进行少量更改(同样,Logo,小功能更改等)。
管理这样的事情的最佳方式是什么?
如果我的问题不明确,请告诉我,我很乐意解释。
答案 0 :(得分:2)
假设您的两台服务器用于“instance1”和“instance2”。
这可能更像是一个架构问题而不是Git问题。是否可以为每个实例使用完全相同的代码库,并抽象出差异?如果您拥有所有实例的共享CSS文件,然后根据您的应用是instance1还是instance2加载instance1.css
或instance2.css
,那么维护将非常容易。对于徽标也是如此 - 只需加载/path/to/logo1
或/path/to/logo2
,具体取决于配置文件是否显示您在instance1或instance2上。一开始这项工作要多得多,但从长远来看,维护工作要少得多。
我不完全确定您的架构是否可行,但如果是这样,如果应用实例之间100%的差异都保存在单个设置文件中,则可以很容易地与Git进行补充。您可以使用Git分支代替单独的repos或单独的帐户:
master
分支将包含最新版本的共享代码instance1
和instance2
分支只会相互不同,因为配置文件说“这是instance1”或“这是instance2”然后你就可以通过简单地将master
合并到instance1
来更新instance1到最新的共享代码,而不必更新instance2直到你准备好这样做
Git book对分支有很好的解释,我认为只需创建单独的分支并在需要时合并即可实现目标。如果只有配置文件不同,合并将会更容易。