Git:如何拉出配置文件一次,然后保持不变

时间:2016-09-06 12:47:50

标签: git

我目前有几个配置文件,让我们称之为config.php和config2.php。我有开发人员在这个存储库上工作,这些配置文件是托管本地开发环境所必需的,所以我将它们放在git存储库中。一旦拉动,我希望它们保持不动,即使是推拉等等。

将配置文件添加到.gitignore后,我仍然必须确保在我按下时将配置文件设置为生产值,然后在我拉动时将它们重置为我的本地。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我看到两个选项:

使用预接收挂钩拒绝更改配置文件(可能除非提交消息具有特殊关键字或行)。 在这种情况下,将配置文件添加到.gitignore是不必要的(无论如何它都是无用的 - 一旦跟踪了文件,它们是否在.gitignore之内并不重要。)

如果您需要区分生产/测试版本,您只需要确保测试版本不会合并到生产分支中(这也可以通过挂钩强制执行)。

脚本

让配置文件由脚本自动生成。生成的文件放在.gitignore中,永远不会被跟踪。 这样,本地开发人员可以调用createConfig.sh并且可以适应他们的本地需求。 如果配置发生更改,请更新createConfig.sh - 开发人员需要在本地调整更改(通过删除和重新创建,或者只是手动重现更改)。

在您的生产环境中,您也可以只拥有本地副本。 理想情况下,createConfig.sh生成生产就绪值,因此不需要很多手动更改。 (当然,总是可以添加--testing开关。)

答案 1 :(得分:0)

如果您将文件添加到您的git存储库,那么git将跟踪它们。这就是它的工作原理。

针对您的特定情况的解决方案可能是在存储库中包含这些文件,而是包含config.php.sampleconfig2.php.sample之类的内容,然后指示您的开发人员,首次克隆存储库时,使用适当的文件名制作本地副本。