Archivo de configuration con partes no rastreables

Tengo un file de configuration que contiene alguna configuration importante para todo el proyecto (es decir, cualquiera que clone el repository debe tener esta misma conf), y alguna configuration local (cualquiera que clone el repository podría necesitar personalizar algo en este file, y No quiero rastrear la personalización local).

Este file es único: no puedo configurar el software para que use varios files, y no admite ningún tipo de directiva de include .

¿Hay alguna forma de manejar este escenario con Git?


Podría usar git-add -p o -i solo para representar parte de este file, pero no es una buena solución: es demasiado propenso a errores, requiere bastante trabajo y git-status siempre mostrará este file de configuration como modificado localmente.

Tal vez podría usar algunos ganchos git?

Tenga un file "config.global" y un file "config.local" para su configuration global registrada y las partes locales específicas del usuario. Cree un script de envoltura para la aplicación (cómo, exactamente, dependerá del sistema operativo, por supuesto). Haga que el script compruebe primero la hora de modificación del file de configuration global, local y "real". Si alguno de los files parciales es más reciente, conéctelos a la configuration real. Luego, inicie la aplicación adecuada.

Realmente no hay forma de rastrear parte de un file en git que yo sepa.

Puede modificar el código para cargar el file principal, y luego uno personalizado para el entorno que anula los valores pnetworkingeterminados. Los desarrolladores pueden mantener su propia versión personalizada, y también puede usar la personalizada para las diferencias en testing / dev / prod, etc.