如何跟踪存储库/项目中特定于系统的配置文件?
我有一个 ruby 项目,开发和生产的数据库主机和端口可能不同。我需要一种方法来为这两个环境的脚本获取不同的值。
该项目应该是完整的 - 因此应该有某种方法来指定默认值。我不希望克隆丢失配置文件。所以完全忽略它们是行不通的。
你如何用git解决这个问题?
I have a ruby project, and the database host and port might be different on dev and production. I need a way to get different values for those into my scripts for the two environments.
The project should be complete - so there should be some way to specify default values. I don't want a clone to be missing the config files. So ignoring them completely won't work.
How do you solve this problem with git?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用:
Git 解决方案是然后是 git 属性过滤器驱动程序(另请参阅GitPro 书籍)。
这样,污点引用的脚本(由 Git 管理)可以用特定于环境的值替换所有变量,而干净的脚本会将其内容恢复到未更改的配置文件中。
当您在 prod 环境中签出 Git 存储库时,smudge 进程将在以下位置生成一个类似 prod 的配置文件:生成的工作树。
I would recommend using:
The Git solution is then a git attribute filter driver (see also GitPro book).
That way, the script (managed with Git) referenced by the smudge can replace all the variables by environement-specific values, while the clean script will restore its content to an untouched config file.
When you checkout your Git repo on a prod environment, the smudge process will produce a prod-like config file in the resulting working tree.