例如,banne.gif,config_mysql.php。
banner.gif在编码时是必要的,因为我们需要检查css布局,而设计者总是会更改它。
config_mysql.php在编码时是必要的,因为我们需要这个文件来运行mysql,而且我们不能使用production version。
我不确定是git add这些文件还是将这些文件放在.gitignore中。
在git中处理这类文件的最好方法是什么?
发布于 2018-12-31 13:19:12
将环境特定的配置值保留在源代码控制的代码存储库之外通常是一个好主意,因为代码应该能够在任何地方运行,只有配置应该改变。
解决方案1:示例文件
与其将config_mysql.php保存在场景中,不如保留一个名为config_mysql.php.sample的文件并将config_mysql.php添加到.gitignore中
然后,从本地主服务器克隆或分支的人可以指定其属性值config_mysql.php,该属性值被添加到.gitignore中,因此不会影响git树。开发人员只在添加/删除配置时编辑config_mysql.php.sample文件(这是需要添加到源代码存储库的信息)。
解决方案2:在环境变量中保留配置值
而不是为config_mysql.php.sample中的键指定实际值,而是从环境变量中提取它们。
$db_host = $_SERVER["MYAPP_DB_HOST"];
$db_user = $_SERVER["MYAPP_DB_USER"];
// and so on通过这种方式,只有一个配置文件与代码一起置于源代码控制之下,开发人员通过设置环境变量来设置他们的本地值。共享环境,如生产和分期,要么需要准备这些环境变量,要么部署工具可以处理它们。
摘要
我倾向于更喜欢解决方案2,因为不需要示例文件,而且很容易重写配置)。如果没有设置环境变量,甚至可以通过提供默认值来扩展它。这并不适合所有类型的配置值,应该谨慎使用,以避免意外连接到例如生产数据库。
发布于 2018-12-31 13:23:00
没有一个答案总是正确的。它可以依赖于任何数量的东西。下面是一些非常普遍的建议,您可以从现有的问题/答案中找到更多的信息。
图像文件
如果它们很小并且/或不经常更改,您可以考虑只对它们进行add处理,而不必太担心它。虽然git不太擅长处理二进制文件,但它们造成的主要问题是存储库臃肿;在中等大小的情况下,这不是一个大问题。
为了达到您所描述的目的,您可以通过使用适当尺寸的占位符来减小大小(也可能减少更改的频率)。
如果图像文件将成为一个问题,您可以使用像git lfs这样的工具,它通过为大型二进制文件提供辅助回购来控制回购的大小。
特定环境文件
我的一般建议是使用.gitignore,并使用您的构建项目为构建的目标环境引入(和/或构造)正确的版本。例如,您可以签入一个模板文件,从中构建每个环境版本的文件,然后让您的构建过程根据指定环境的变量填充模板。
发布于 2018-12-31 13:27:13
在我看来,您可以有两个版本的banner.gif和config_mysql.php。
例如,您可以签入Git --这些文件:config_mysql.php和config_mysql_dev.php
在生产中,使用config_mysql.php文件。
在本地机器上,您可以将文件config_mysql_dev.php重命名为config_mysql.php以使用它。
对于banner.gif来说,类似的事情可以被认为是.
https://stackoverflow.com/questions/53987559
复制相似问题