我有一个Ruby项目,数据库主机和端口在开发和生产上可能不同。我需要一种方法,在我的脚本中为这两个环境获取不同的值。
项目应该是完整的-所以应该有一些方法来指定默认值。我不希望克隆丢失配置文件。所以完全忽视它们是行不通的。
你如何用Git解决这个问题?

最佳答案

我建议使用:
模板配置文件(用变量名代替主机和端口值的文件)
一个脚本,能够根据环境(由脚本检测)用适当的值替换这些变量名。
Git溶液则为agit attribute filter driver(另请参见)。
筛选器驱动程序由一个clean命令和一个smudge命令组成,两者都可以不指定。
checkout之后,当指定了smudge命令时,该命令将从其标准输入馈送blob对象,并使用其标准输出更新worktree文件。
类似地,clean命令用于在签入时转换WorkTree文件的内容。
这样,smudge引用的脚本(用git管理)可以用特定于环境的值替换所有变量,而clean脚本会将其内容恢复到未接触的配置文件中。
当您在prod环境中签出git repo时,smudge进程将在生成的工作树中生成类似prod的配置文件。

关于ruby - 如何在 repo /项目中跟踪系统特定的配置文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2154948/

10-12 00:29
查看更多