Git默认文件(第一次拉后忽略)

时间:2011-12-21 03:53:05

标签: git

你将如何在git中设置这个场景:

我的源码有一个设置文件,其中包含配置设置,例如数据库连接凭据等...(这是一个Drupal源码,我指的是settings.php)

当开发人员克隆源时,他们需要进入并更改特定于其环境的设置。当然,这些变化不应该被推回原点。同时我希望他们能够使用这个默认模板(因为大多数模板都不会被更改)。

所以.gitignore在这里不起作用,因为我想要它们的第一个克隆。 我是否需要向每位新开发人员讲授git update-index --assume-unchanged

有没有更明智的方法来做到这一点?

3 个答案:

答案 0 :(得分:8)

我会将database.php重命名为database.php.sample并将database.php添加到.gitignore

每当有新用户出现时,只需从database.php.sample复制到database.php并进行相应的更改。

答案 1 :(得分:0)

更简单的方法是使用 filter driver ,并使用涂抹脚本

content driver

Pedropropositiondatabase.php.gitignore)的基础上构建:

  • 版本a database.php.sample
  • 仅当所述私有database.php尚不存在时,通过涂抹脚本(git checkout)将其复制到私有(即未版本化)database.php

从git 1.7.4开始,过滤器定义中的%f将被当前文件的路径替换;见the .gitattributes manpage

答案 2 :(得分:0)

是的。这是我已发布的解决方案。

git add -N然后database.php上使用git add -p。编辑hunk以便用占位符替换敏感数据。

之后你需要注意的一件事是,你永远不应该从存储库的根目录git add . - 但没有人这样做,对吧? ;)