我目前有几个配置文件,让我们称之为config.php和config2.php。我有开发人员在这个存储库上工作,这些配置文件是托管本地开发环境所必需的,所以我将它们放在git存储库中。一旦拉动,我希望它们保持不动,即使是推拉等等。
将配置文件添加到.gitignore后,我仍然必须确保在我按下时将配置文件设置为生产值,然后在我拉动时将它们重置为我的本地。有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
我看到两个选项:
使用预接收挂钩拒绝更改配置文件(可能除非提交消息具有特殊关键字或行)。
在这种情况下,将配置文件添加到.gitignore
是不必要的(无论如何它都是无用的 - 一旦跟踪了文件,它们是否在.gitignore
之内并不重要。)
如果您需要区分生产/测试版本,您只需要确保测试版本不会合并到生产分支中(这也可以通过挂钩强制执行)。
让配置文件由脚本自动生成。生成的文件放在.gitignore
中,永远不会被跟踪。
这样,本地开发人员可以调用createConfig.sh
并且可以适应他们的本地需求。
如果配置发生更改,请更新createConfig.sh
- 开发人员需要在本地调整更改(通过删除和重新创建,或者只是手动重现更改)。
在您的生产环境中,您也可以只拥有本地副本。
理想情况下,createConfig.sh
生成生产就绪值,因此不需要很多手动更改。 (当然,总是可以添加--testing
开关。)
答案 1 :(得分:0)
如果您将文件添加到您的git存储库,那么git将跟踪它们。这就是它的工作原理。
针对您的特定情况的解决方案可能是不在存储库中包含这些文件,而是包含config.php.sample
和config2.php.sample
之类的内容,然后指示您的开发人员,首次克隆存储库时,使用适当的文件名制作本地副本。