Git файлы по умолчанию (игнорируется после первого извлечения) - PullRequest
8 голосов
/ 21 декабря 2011

Как бы вы настроили этот сценарий в git:

У моего источника есть файл настроек с настройками конфигурации, такими как учетные данные подключения к БД и т. Д. (Это источник Drupal, и ясм. settings.php)

Когда разработчики клонируют источник, им нужно будет войти в систему и изменить настройки, соответствующие их среде.Эти изменения, конечно же, не должны быть возвращены к происхождению.И в то же время я хочу, чтобы они могли работать с этим шаблоном по умолчанию (так как большая его часть не будет изменена).

Так что .gitignore здесь не работает, потому что я хочу его в своем первом клоне,Нужно ли рассказывать каждому новому разработчику о git update-index --assume-unchanged?

Разве нет более изящного способа сделать это?

Ответы [ 3 ]

8 голосов
/ 21 декабря 2011

Я бы переименовал database.php в database.php.sample и добавил database.php в .gitignore.

Всякий раз, когда появляется новый пользователь, просто скопируйте с database.php.sample на database.php и внесите соответствующие изменения.

0 голосов
/ 21 декабря 2011

Да, есть. Это решение, которое я уже опубликовал.

Используйте git add -N на database.php, затем git add -p. Отредактируйте блок так, чтобы заменить конфиденциальные данные заполнителями.

Одна вещь, которую вы должны быть осторожны, это то, что вы никогда не должны git add . из корня хранилища - но никто этого не делает, верно? ;)

0 голосов
/ 21 декабря 2011

Более удобный способ сделать это - использовать драйвер фильтра с сценарием :

content driver

Опираясь на Педро предложение database.php в .gitignore), вы бы:

  • версия a database.php.sample
  • скопировать его в приватное (т.е. не версионное) database.php через сценарий smudge (на git checkout), только если указанное приватное database.php еще не существует.

Начиная с git 1.7.4, %f в определении фильтра будет заменено путем к текущему файлу; см. справочную страницу .gitattributes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...