- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是一个关于 git 的非常普遍的问题 - 考虑以下示例的服务器应用程序。
上下文:假设您的存储库中有几个分支,其中包括“staging”和“deploy”。要开发应用程序,您可以使用具有特定开发配置文件的私有(private)机器。您的应用程序即将部署到公共(public)计算机上。然而,公共(public)机器需要不同的配置文件(例如,它必须访问特定的数据库等)。
问题:如果我在“staging”中提交我的配置文件,做一些更改,然后 merge 到“deploy”中,它会覆盖我的部署配置文件,这是不正确的。如果我不跟踪我的配置文件,我随时可能会丢失它们。
问题:我怎样才能保护两个分支中的两个文件,以便在任何时候都不会丢失?如何将这些文件分配给它们所属的分支机构?有没有一种方法可以透明地完成这一切,这样我就可以只使用 git 的常用机制而不必考虑这些文件?
谢谢!
最佳答案
根据我的经验,分支机构不是正确的方法。尝试将开发和部署分离到单独的存储库中。您的应用程序存储库不应包含用于生产部署的配置文件。可用于本地部署的默认配置通常很好。
出于以下原因,任何其他内容都应保留在源代码存储库之外:
如果您仍想跟踪配置(通常这是个好主意),要么
file-uat.config
、file-production.config
)——您也可以使用同一个 repo 中的多个目录,一个目录包含所有 uat 文件,一个目录包含所有生产文件,等等。或者myapp-config-uat
, myapp-config-production
。 这两种方法中的任何一种都应该与脚本解决方案配合使用,脚本解决方案会自动将配置文件克隆/更新到相关环境中。
关于git - 保护特定于 git 部署的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580044/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!