首先 - 我已经阅读了很多关于这个主题的问题,所以我知道以下方法:
.gitignore
--skip-worktree
--assume-unchanged
这个问题更多的是试图满足我个人对如何处理配置文件的偏好。
我尝试过.gitignore
和--skip-worktree
方法,是的,但是它们不能满足我对如何处理配置文件的偏好,这就是为什么我在寻找另一种解决方案。我相信--assume-unchanged
实现了与--skip-worktree
相同的结果,即使它们不同,所以我选择不再尝试它(是的,我已经阅读了很多关于这些标志的问题和文件)。
这是我的问题:
.gitignore
我不喜欢这个的原因是我必须将我的配置文件命名为config.default.php
,并且必须记住复制它并将其重命名为config.php
- 它包含在.gitignore
文件中。
--skip-worktree
我不喜欢这个,因为克隆远程存储库的每个开发人员都必须记住运行该命令。
所以我想真正的问题是:“有没有办法忽略配置文件,其中每个开发人员不必为每个克隆运行命令而不必重命名和复制默认配置文件?”。基本上我希望克隆后立即开箱即用,除了为每个参数提供必要的配置值之外,不需要其他任何步骤。
如果一个应用程序可以在没有配置文件的情况下工作(通过弄清楚它自己),它应该这样做。
当需要配置文件时,应该无法按原样运行应用程序,尤其是在需要敏感数据的情况下。
在这种情况下,使用default
文件(具有合理的默认值和关于要设置的值的评论)是一项历史悠久的传统。从安全角度来看,忽略真实的配置文件(因此不能意外上传)是明智的预防措施。
一个服务器(或一组服务器)的配置如何在一定程度上是一个意见和品味的问题。但是将配置文件放在每个应用程序的源代码库中绝对不是正确的答案!
人们至少希望系统管理员为某个服务器的所有配置文件使用私有仓库,甚至可以为一组服务器使用私有仓库,以便可以共享配置文件。