我们使用git大多数我们建立在我们的商店的web应用程序,尽管应用程序本身使用多种技术(PHP,Rails的,等等),我们通常有一个分期和生产每个站点的服务器。通常,这些服务器具有不同的数据库凭据集以及不同的基于环境的配置设置(例如缓存)。我们的工作流程通常涉及每个项目维护两个git分支:反映生产服务器的master和反映分段的分段。新功能在分段(或子分支)上开发,并在完成和部署后合并回主。混帐:应用程序配置和不同的环境
我的问题是关于维护是科顺和特定环境的配置文件的最好方法。我已经看到类似问题here和here的答案,但都没有真正满足。主要的两种方法似乎是a)使用.gitignore排除将配置文件留在git的权限范围之外,或者b)编写反射的,环境感知的代码,其确定例如根据主机名使用哪些数据库凭证。我对a)的问题是它只允许一组配置文件存在于代码库中(不管当前分支),所以其他环境的配置文件会丢失。另一方面,b)似乎需要对代码库进行不必要的修改,这种方式与应用程序的功能无关。理想情况下,我想要一种方式来锁定某个分支内的配置文件,这样无论何时我签出master,我都会得到master配置文件,并且每当我结帐时,就会得到配置文件。另外,将分段合并到主设备中不应以任何方式影响主配置文件。迄今为止,我们已经通过在git根目录之外包含特定于环境的配置文件的文件夹进行处理,并在部署时手动将相应的文件移动到代码库中,但这当然是不必要的破解(并且可能是危险的)。
有什么办法可以用git来完成这个任务吗?
感谢您的考虑!
将http://stackoverflow.com/questions/2154948/how-can-i-track-system-specific-config-files-in-a-repo-project/2155355#2155355结合http:// stackoverflow .com/questions/3207575/how-do-i-open-source-my-rails-apps-without-giving-away-the-apps-secret-keys-and/3207608#3207608 help here? – VonC 2010-07-09 15:33:48