例如banne.gif
,config_mysql.php
。
banner.gif
在编码时是必需的,因为我们需要检查css布局,而设计人员始终会对其进行更改。
在进行编码时,config_mysql.php
是必需的,因为我们需要该文件来运行mysql,而我们不能使用production version
。
我不确定是git add
个文件还是将这些文件放在.gitignore
中。
在git中处理这类文件的最佳方法是什么?
答案 0 :(得分:0)
在源代码控制的代码存储库之外保留特定于环境的配置值通常是个好主意,因为代码应该可以在任何地方运行,只有配置可以更改。
而不是将config_mysql.php
保留在存储库中,而是保存一个名为config_mysql.php.sample
的文件并将config_mysql.php
添加到.gitignore
从本地主机克隆或分支的人可以指定其属性值config_mysql.php
,该属性值将添加到.gitignore
中,因此不会影响git树。开发人员仅在添加/删除配置后才编辑config_mysql.php.sample
文件(这是需要添加到源代码存储库中的信息)
不是在config_mysql.php.sample
中指定键的实际值,而是将其从环境变量中拉出。
$db_host = $_SERVER["MYAPP_DB_HOST"];
$db_user = $_SERVER["MYAPP_DB_USER"];
// and so on
这样,只有一个配置文件,与代码一起在源代码控制下,并且开发人员通过设置环境变量来设置其本地值。需要使用这些环境变量来准备诸如生产和升级之类的共享环境,否则部署工具可以负责注入它们。
我倾向于更好地喜欢解决方案2,因为不需要示例文件,并且很容易覆盖配置)。如果未设置环境变量,甚至可以通过提供默认值来扩展它。这不适用于所有类型的配置值,应谨慎使用,以免意外连接到例如生产数据库
答案 1 :(得分:0)
没有一个答案总是正确的。它可以取决于许多因素。以下是一些非常笼统的建议,您可以从现有问题/答案中找到更多信息。
图像文件
如果它们很小和/或不经常更改,则可以考虑add
对其进行修饰,而不必为此担心太多。虽然git不能很好地处理二进制文件,但它们引起的主要问题是存储库过大。而且尺寸适中也不是什么大问题。
出于您描述的目的,您可以使用尺寸适当的占位符来减小尺寸(并可能减少更改的频率)。
如果图像文件将成为问题,则可以使用git lfs
之类的工具,该工具可以通过为大型二进制文件之类的文件提供辅助存储库来控制存储库大小。
特定于环境的文件
我的一般建议是.gitignore
,并使用您的构建项目为构建的目标环境引入(和/或构建)正确的版本。例如,您可以检入一个模板文件,从中可以构造文件的每个环境版本,然后让构建过程根据指定环境的变量来填写模板。
答案 2 :(得分:0)
我认为您可以使用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 ...可以考虑类似的事情