'Fijar' una versión específica de un file en una twig de git

En un repository de git, digamos que tengo un file en mi twig principal, config.json, que contiene cierta información sobre, por ejemplo, mi entorno de alojamiento.

master - config.json 

En aras de la argumentación, supongamos que este file es leído por mi gulp-file y contiene información sobre si minimizar mis javascripts o include maps fuente.

En mi twig de desarrollo, quiero que este file sea diferente

 development - config.json 

De modo que cada vez que ejecuto gulp en mi twig principal, mis javascripts se networkingucen al mínimo, mientras que cuando ejecuto gulp en mi twig de desarrollo, incluyo maps de origen para mi mecanografía comstackda.

¿Hay alguna forma de garantizar que config.json no se fusione entre desarrollo y master por error, y viceversa?

Varias generaciones de control de código fuente atrás, en Visual Source Safe, esto se podía lograr "fijando" files específicos a una "twig" específica

¿Es esto (o algo equivalente) posible con git?

git toma instantáneas de su proyecto y hacer este tipo de "fijación" no es una buena política.

Hay varias soluciones para hacer lo que quieras.

RAMA

Usando 3 twigs.

  • Rama maestra oficial.
  • Rama de desarrollo oficial.
  • twig de trabajo

Usted trabaja en la twig de trabajo. Puede ser temporal y el nombre puede ser el número de seguimiento de su "Sistema de seguimiento de errores / requisitos".

Después de terminar, te unes en tu twig de desarrollo oficial. Cambia los files específicos para que funcionen correctamente. Confirme con sus testings que funciona.

Vuelve a la twig de trabajo y fusiona el cambio en la twig principal oficial.

ENLACE SIMBÓLICO

Si está en una máquina Unix / Linux. Puedes tener dos files de configuration. Uno para la twig principal y el otro para la twig de desarrollo.

Luego, crea un apuntamiento simbólico en cada twig al file correspondiente. Luego puede modificar indiferentemente cada file sin preocuparse de afectar los cambios en la otra twig.

Si no está interesado en los cambios de este file de configuration, va a cambiar. Puedes eliminarlo de ser rastreado por git.

 git rm yourFile 

Y después de esto, puedes agregarlo a tu file .gitignore para no verlo cuando hagas el git status o commands similares.

El problema de hacer esto es que si clonas tu proyecto, no va a funcionar porque este file no estará y tendrás que crearlo manualmente.