Вы не должны включать свои реальные учетные данные базы данных в систему управления версиями. Скопируйте файл 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.