Ignorar los files de configuration del server en git

Tengo un file en mi proyecto web que configura la connection de db del sitio. Obviamente, esto tiene diferentes configuraciones para la puesta en escena y las twigs activas del sitio, y necesito que contenga mi configuration de desarrollo local en mi máquina. El file debe estar en el repository, pero ahora que está allí no necesita ser rastreado.

He seguido el consejo en esta pregunta (y otras): ¿cómo ignorar files solo localmente en git? que ha dejado de contarme sobre los cambios en una twig determinada, pero si bash cambiar las twigs, por ejemplo, desde mi bifurcación de corrección de errores actual hasta la puesta en escena, o si bash fusionar la etapa en la twig actual, git me advierte que los cambios locales se sobrescribirá, y estoy bloqueado en la twig.

Hasta ahora, la única 'solución' que he encontrado ha sido ignorar el file y confirmar las diferencias, o modificar mi file local para que coincida con la twig del server.

¿Cuál es la mejor manera de hacer que todas las sucursales ignoren el file de configuration?

Intentar ignorar los cambios solo locales en los files rastreados en git solo dará como resultado problemas.

Las opciones como –assume-unchanged y –skip-worktree solo tienen influencia al hacer el estado de git, cuando las lecturas de git cambian desde el sistema de files. Cuando realizas operaciones como git checkout, git no ignorará los cambios a estos files, y te dará los errores que encuentres.

Según mi experiencia (y otros), es mejor no seguir los files de configuration reales . En lugar, es mejor rastrear una plantilla con un nombre diferente. Esto evita muchos problemas al sobreescribir el file de configuration real o al tener que excluir / ignorar files al copyr / extraer files.

Pruebe en cambio, como en esta respuesta :

git update-index --skip-worktree -- <local-only_file> 

Detallo la diferencia entre las dos opciones de update-index ( --assume-unchanged y --skip-worktree ) en " ¿Cómo haces que Git ignore files sin usar .gitignore? "

Puede usar la bandera assume-unchanged
https://git-scm.com/docs/git-update-index

– [no-] asumir-sin cambios

Cuando se especifica este indicador, los nombres de los objects registrados para las routes no se actualizan.

En cambio, esta opción establece / desactiva el bit "asumir sin cambios" para las routes.

Cuando el bit "asumir sin cambios" está activado, el usuario promete no cambiar el file y permite que Git suponga que el file del tree de trabajo coincide con lo que está grabado en el índice. Si desea cambiar el file de tree de trabajo, debe deshacer el bit para decirle a Git. Esto a veces es útil cuando se trabaja con un gran proyecto en un sistema de files que tiene una llamada al sistema lstat (2) muy lenta (por ejemplo, cifs).

Git fallará (correctamente) en caso de que necesite modificar este file en el índice, por ejemplo, al fusionarse en una confirmación; por lo tanto, en caso de que el file asumido no rastreado se cambie en sentido ascendente, deberá manejar la situación manualmente.

enter image description here