gpt4 book ai didi

git - 保护特定于 git 部署的文件

转载 作者:太空狗 更新时间:2023-10-29 14:45:44 24 4
gpt4 key购买 nike

这是一个关于 git 的非常普遍的问题 - 考虑以下示例的服务器应用程序。

上下文:假设您的存储库中有几个分支,其中包括“staging”和“deploy”。要开发应用程序,您可以使用具有特定开发配置文件的私有(private)机器。您的应用程序即将部署到公共(public)计算机上。然而,公共(public)机器需要不同的配置文件(例如,它必须访问特定的数据库等)。

问题:如果我在“staging”中提交我的配置文件,做一些更改,然后 merge 到“deploy”中,它会覆盖我的部署配置文件,这是不正确的。如果我不跟踪我的配置文件,我随时可能会丢失它们。

问题:我怎样才能保护两个分支中的两个文件,以便在任何时候都不会丢失?如何将这些文件分配给它们所属的分支机构?有没有一种方法可以透明地完成这一切,这样我就可以只使用 git 的常用机制而不必考虑这些文件?

谢谢!

最佳答案

根据我的经验,分支机构不是正确的方法。尝试将开发和部署分离到单独的存储库中。您的应用程序存储库不应包含用于生产部署的配置文件。可用于本地部署的默认配置通常很好。

出于以下原因,任何其他内容都应保留在源代码存储库之外:

  • 您在上面提到的分支/merge 问题。
  • 在所有情况下,您都不知道您的应用程序将部署到哪些服务器。在许多组织中,运行时/生产环境的部署和操作将由不同的团队处理 - 他们最了解您的应用程序将在哪些服务器上运行,并且您不需要在源代码存储库中包含此信息。

如果您仍想跟踪配置(通常这是个好主意),要么

  • 创建一个单独的配置存储库并使用上面评论中描述的命名方法(file-uat.configfile-production.config)——您也可以使用同一个 repo 中的多个目录,一个目录包含所有 uat 文件,一个目录包含所有生产文件,等等。或者
  • 为每个部署环境创建一个单独的存储库,例如myapp-config-uat, myapp-config-production

这两种方法中的任何一种都应该与脚本解决方案配合使用,脚本解决方案会自动将配置文件克隆/更新到相关环境中。

关于git - 保护特定于 git 部署的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com