gitignore中的文件
我在生产服务器中有一个带有rails应用程序的存储库。
在repo中有.gitignore文件:
... config/database.yaml ...
每个开发客户端都有一个具有不同config / database.yaml的克隆repo。
我的问题是:
database.yaml在.gitignore中,然后当我运行git clone(在服务器上)时,将不会创建database.yaml,但我需要它。
我想,我做错了什么。 你能看出我的错误在哪里吗?
谢谢你,亚历山德罗
在我的项目中,我通常在database.example.yml中复制一个可用的数据库配置,然后当有人克隆项目时,将database.example.yml复制到database.yml并进行所需的更改。
(这是我对你的第一个问题的 原始答案的副本)
您没有对正确的文件进行版本控制。
你应该版本:
- 一个
database.yaml.template
- 2个文件(一个用于服务器值,一个用于通用客户端值)
- 1个脚本能够在结账时构建
database.yaml
该脚本将由filter驱动程序的涂抹步骤调用。
生成的database.yaml
将是“私有的”(从不版本化/推送或拉取),并且可以随意修改。
像robertokl建议的那样保留像database.example.yml这样的模板
当您将应用程序部署到生产服务器时,您应该使用类似capistrano的东西,并且您的capistrano配方(脚本)的一部分将重命名该文件或将正确的database.yml文件放在配置目录中
所有这些database.yaml文件都有一些共同点:你可以提交一个基本配置,并让所有开发客户端在自己的分支中维护它的分支,并填入适当的设置; 无论何时更新,它们都可以在master分支的基本配置之上进行rebase。
aleds – 将数据库.yml放在存储库中通常是个坏主意,这就是你在.gitignore中看到它的原因。 robertokl是关于提供模板文件的。