Мы разрабатываем продукт и используем Git в качестве SCM. Каждая дополнительная версия продукта находится в отдельной ветке. Как разработчик, у меня есть свой собственный набор баз данных, по одной для каждой вспомогательной версии. У меня также есть личный файл конфигурации, который игнорируется Git, и он указывает, какую базу данных использовать. Но поскольку Git игнорирует его, он остается неизменным независимо от того, на какой ветке я сейчас работаю. Это нехорошо, потому что если в файле конфигурации указано использование базы данных db_1_2 (которая предназначена для ветви 1.2), переключение на ветку 1.3 оставляет файл конфигурации по-прежнему указывающим на базу данных db_1_2.
В настоящее время у меня есть фрагмент кода, который читается и анализируется идентификатор ветви, чтобы установить правильную базу данных, но он подвержен ошибкам, потому что идентификатор Git существует во многих вариантах, большинство из которых довольно трудно / невозможно разрешить правильное название ветви от.
Я могу спросить сам продукт, но не у всех старых версий есть статический метод getVersion ().
Итак, мой вопрос заключается в следующем: есть ли какой-нибудь хороший и чистый способ, чтобы частный конфигурационный файл каким-то образом принадлежал ветви, но не попадал в конечный продукт при отправке в удаленное / центральное хранилище?