Git默认文件(第一次拉取后忽略)
您将如何在git中设置此场景: 我的源代码有一个带有配置设置的设置文件,如db连接凭据等。。。(这是一个Drupal源代码,我指的是settings.php) 当开发人员克隆源代码时,他们需要进入并更改特定于其环境的设置。当然,这些变化不应该推回原点。同时,我希望他们能够使用这个默认模板(因为它的大部分不会被更改) gitignore在这里不起作用,因为我想在他们的第一个克隆中使用它。 我是否需要教每一位新开发人员关于git更新索引的知识——假设没有变化Git默认文件(第一次拉取后忽略),git,Git,您将如何在git中设置此场景: 我的源代码有一个带有配置设置的设置文件,如db连接凭据等。。。(这是一个Drupal源代码,我指的是settings.php) 当开发人员克隆源代码时,他们需要进入并更改特定于其环境的设置。当然,这些变化不应该推回原点。同时,我希望他们能够使用这个默认模板(因为它的大部分不会被更改) gitignore在这里不起作用,因为我想在他们的第一个克隆中使用它。 我是否需要教每一位新开发人员关于git更新索引的知识——假设没有变化 有没有更巧妙的方法呢?我会将databa
有没有更巧妙的方法呢?我会将
database.php
重命名为database.php.sample
,并将database.php
添加到.gitignore
每当出现新用户时,只需从
数据库.php.sample
复制到数据库.php
,并进行适当的更改。一种更巧妙的方法是使用,并使用涂抹脚本:
基于的(使用.gitignore
中的database.php
),您将:
- 版本a
database.php.sample
- 仅当所述private
尚不存在时,才通过smudge脚本(在database.php
上)将其复制到private(即未版本化的)git checkout
database.php
从git 1.7.4开始,过滤器定义中的
%f
将替换为当前文件的路径;请参见是的,有。这是我已经发布的解决方案
在database.php上使用gitadd-N
,然后使用gitadd-p
。编辑大块以便用占位符替换敏感数据
之后需要注意的一件事是,永远不要从存储库的根目录添加git。
,但没有人这样做,对吗?;) 好建议!就像wordpress所做的那样:汉克斯!我当前项目中的人有点反对这一点,但我倾向于认为这是最好的方法。你应该小心忽略过去项目中跟踪的文件。git将被忽略的文件视为一次性文件,因此,如果在
中跟踪了数据库.php
,则执行git签出和&git签出-
操作将删除您的数据库.php
文件而不发出警告。更安全的选择是让database.php
包含一组默认选项,但在该文件的末尾包括database.local.php
(如果存在)它可以覆盖默认设置。过滤器驱动程序的想法是自动处理database.php.sample
的副本,而不必手动复制。可能的副本请更详细地描述您的解决方案。我尝试了以下操作:git add-N template.file
清理了模板文件git add-p template.file
Stage this hunk[y,N,q,a,d,/,s,e,?]?y
使用Sourcetree提交阶段,在此之后,template.file
的任何更改仍会被注意到并将被提交:(