Дуже часто в будь-якому проекті є принаймні один конфігураційний файл. Кожного разу, коли я ділюся проектом git, у мене виникає одна і та ж проблема з:
- конфіденційна інформація (кожен розробник має різні паролі БД тощо)
- інформація про конкретне завдання (коли розробник працює над певним завданням, де потрібно змінити деякі налаштування)
Очевидно, що конфігурації потрібно якось ігнорувати, щоб запобігти затопленню даних конкретного розробника до основного сховища. Зараз є кілька способів, якими я звик користуватися, кожен з яких має деякі недоліки:
.gitignoreконфігураційні файли- найпростіший спосіб
- коли розробник клонує репо, файл конфігурації відсутній, і потрібно з'ясувати, де конфігури їх відтворювали
- файл конфігурації не ігнорується. Він містить деяку фіктивну інформацію, і кожен розробник або відстежує та додає її до свого,
.git/info/excludeабо встановлюєgit update-index --assume-unchanged ...у файл- файли доступні для всіх, хто клонує репо
- він містить передові методи, які можуть заплутати людей, які вперше працюють з git
- коли хтось випадково робить конфігураційні файли, це не дозволить людям тягнути / витягувати (оскільки виключає не працює так само, як
.gitignore)
- розповсюджувати конфігураційні файли, суфіксом яких, наприклад,
_originalмаючи справжні файли в.gitignore. Потім кожен розробник перейменовує файли на справжні імена- файли доступні для всіх, хто клонує репо
- потрібно шукати всі конфігури у всій програмі та перейменовувати їх
Чи існують інші, можливо, кращі способи вирішити це? Я підозрюю, що чогось мені не вистачає, хоча б якийсь плагін.
