这是关于git的一个非常普遍的问题 - 想想下面例子的服务器应用程序。
上下文:假设您的仓库中有一些分支,其中包括“暂存”和“部署”。要开发应用程序,请使用具有特定开发配置文件的专用计算机。您的应用即将部署在公共计算机上。但是,公共机器需要不同的配置文件(例如,它必须访问特定的数据库等)。
问题:如果我在'staging'中提交配置文件,进行一些更改,然后合并到'deploy',它将覆盖我的部署配置文件,这将是不正确的。如果我不跟踪我的配置文件,我可能会在任何时候丢失它们。
问题:如何保护两个分支中的两个文件,以便在任何时候都不会丢失?如何将这些文件分配给它们所拥有的分支机构?有没有办法透明地完成所有这些,这样我就可以使用git的常用机制而无需考虑这些文件?
谢谢!
答案 0 :(得分:3)
根据我的经验,分支机构不是正确的方法。尝试将开发和部署分离到单独的存储库中。您的应用程序仓库不应包含用于生产部署的配置文件。可以用于本地部署的默认配置通常很好。
由于以下原因,其他任何内容都应保留在源代码仓库之外:
如果您仍想跟踪配置(一般来说这是一个好主意),
file-uat.config
,file-production.config
) - 您也可以在同一个仓库中使用目录,因此一个目录包含所有的uat文件,所有生产文件等等。或者myapp-config-uat
,myapp-config-production
。 这些方法中的任何一种都应该适用于脚本解决方案,该解决方案可以自动将配置文件克隆/更新到相关环境中。