Sea*_*ess 12 ruby git version-control
我有一个ruby项目,数据库主机和端口在开发和生产方面可能不同.我需要一种方法来为这两个环境获取不同的值到我的脚本中.
项目应该是完整的 - 所以应该有一些方法来指定默认值.我不希望克隆丢失配置文件.完全忽略它们是行不通的.
你如何用git解决这个问题?
Von*_*onC 21
我建议使用:
然后Git解决方案是git属性过滤器驱动程序(另请参阅GitPro书籍).
过滤器驱动程序由
clean命令和smudge命令组成,其中任何一个都可以不指定.
在指定命令checkout时,smudge命令从其标准输入中提供blob对象,其标准输出用于更新工作树文件.
同样,该clean命令用于在签入时转换worktree文件的内容.
这样,涂抹引用的脚本(使用Git管理)可以通过环境特定值替换所有变量,而clean脚本将其内容恢复为未触及的配置文件.

当您在prod环境中检出Git仓库时,涂抹过程将在生成的工作树中生成类似prod的配置文件.