У меня есть простое веб-приложение.У меня есть производственная база данных для живой версии и тестовая база данных для разработки.Я сохраняю учетные данные базы данных в файле конфигурации, например:
<?php
return array(
'hostname' => 'myhostname',
'username' => 'myuser',
'password' => 'mypassword',
'dbname' => 'myLiveDB',
);
?>
Этот файл отслеживается git.В ветке разработки я хочу иметь файл с тем же именем, но с другими учетными данными.Я делаю свою работу в этой ветке, тестирую вещи и затем объединяюсь с master, когда хочу развернуть более новую версию.
Я никогда не хочу видеть изменение этого файла во время операции слияния / перебазировки.Каждая ветка всегда должна сохранять свою собственную версию, и она должна обновляться только путем фиксации непосредственно в ветке.
То, что я рассмотрел до сих пор:
.gitattributes
файлы с merge=ours
для конфигурационного файла + git config --global merge.ours.driver true
.Я не думаю, что это работает для rebase, что является проблемой.Я также не уверен, что любому другому разработчику, работающему над этим, потребуется обновить свои настройки вручную, или есть способ изменить этот параметр на уровне хранилища? - Отключить файл конфигурации, переписать все, чтобы использовать переменные среды.установите их вручную для сервера и для каждого разработчика.
- имеет
config_test.php
и config_prod.php
в хранилище.При развертывании попросите сценарий посмотреть, из какой ветки мы развертываем, и скопируйте правильный файл, переименовывая его в config.php