¿Puedo tener diferentes files de configuration privada en diferentes twigs de git?

Estamos desarrollando un producto y usamos Git como nuestro SCM. Cada versión menor del producto vive en su twig separada. Como desarrollador, tengo mi propio set de bases de datos, una para cada versión secundaria. También tengo un file de configuration privado, que Git ignora, y especifica qué database usar. Pero como Git lo ignora, sigue siendo el mismo sin importar en qué twig esté actualmente. Eso no es bueno, porque si el file de configuration dice que se debe usar la database db_1_2 (que está destinada a la twig 1.2), cambiar a la twig 1.3 deja el file de configuration aún apuntando a la database db_1_2.

Actualmente tengo un fragment de código leído y analizo el identificador de twig en un esfuerzo por establecer la database correcta, pero es propenso a errores, porque el identificador Git viene en muchos sabores, la mayoría de los cuales son bastante difíciles / imposibles de resolver en la twig correcta nombre de.

Puedo preguntar el producto en sí, pero no todas las versiones anteriores tienen un método estático getVersion ().

Así que mi pregunta es esta: ¿hay alguna forma buena y limpia de tener un file de configuration privada perteneciente a una sucursal, pero no llegar al producto final cuando se envía al repository remoto / central?

¿Por qué la versión de la database está en un file de configuration ignorado cuando la database está tan integralmente relacionada con la twig? Está solicitando una forma de determinar la database desde la sucursal, pero el trabajo completo de una sucursal es proporcionar un estado de código específico para una sucursal y consistente con todo lo demás en la sucursal. Mueva el identificador de la database fuera del file de configuration a algo que no se ignore.

¿Qué tal si creas una serie de files de configuration nombrados después de tus twigs de git? Entonces puedes hacer algo como esto cuando tienes twigs:

 ln -s configs/$(git symbolic-ref HEAD|cut -f3 -d/) myconfig.conf 

Alternativamente, en lugar de ejecutar:

 git co -b branchname 

Hacer un script switchbranch hace algo como esto:

 git co -b $1 ln -s configs/$1 myconfig.conf 

Y todo se vuelve automático. Podrías imaginarte y crear un file de configuration de plantilla si cambias a una twig para la que no hay una configuration existente.

Puede tener una configuration cambiante (automáticamente), que refleje los cambios de twig, si se versionará como plantilla y, usando la idea de esta mi publicación , agregará palabras key en la parte dependiente de la twig de la plantilla y filters para procesar estas palabras key. La sucursal para cualquier set de cambios puede ser

git branch | grep "*"

git status | grep 'On branch'

git symbolic-ref -q HEAD (?)

git branch | sed --quiet 's/* \(.*\)/\1/p'

No puedo ver cómo evitar los efectos secundarios al empujar