Git - Как одновременно добавить файл в .gitignore и при этом сохранить его в Git / удаленном репо? - PullRequest
1 голос
/ 28 марта 2012

У меня есть файл конфигурации базы данных, database.yml, который должен быть в Git, потому что мои клиенты строят сервер, клонирует весь репозиторий для тестирования.

Однако у меня также есть копия этого файла на моем локальном компьютере для разработки, проблема в том, что я хочу внести изменения в нее локально и заставить git игнорировать эти изменения, т.е. не фиксировать изменения в репозитории при внесении изменений и не перезаписать его / доставить мне неприятности из-за того, что он отличается, когда я выполняю запрос на извлечение.

Кто-нибудь знает, как этого можно достичь? Спасибо!

1 Ответ

4 голосов
/ 28 марта 2012

Вы не должны включать свои реальные учетные данные базы данных в систему управления версиями. Скопируйте файл database.yml в database.yml.example с пустым именем пользователя / паролем и добавьте database.yml в .gitignore. Каждый раз, когда вы клонируете, копируйте database.yml.example в database.yml и помещайте определенные учетные данные базы данных этой установки в копию database.yml.

Если вы не хотите переустанавливать производственную среду при каждом развертывании, используйте что-то вроде Capistrano, которое позволит вам хранить такие вещи, как файлы конфигурации между развертываниями, или напишите свой собственный скрипт, который создает ссылку на постоянную базу данных .yml вне каталога развертывания.

Вы также можете использовать git update-index --assume-unchanged config/database.yml, чтобы Git игнорировал локальные изменения в этом файле, но вы не должны этого делать. Правильное решение состоит в том, чтобы сохранить ваши реальные учетные данные базы данных вне Git.

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