inicialmente pensé en un filter driver (ver Pro Book), lo que haría:
- en el escalón mancha guardar su contenido de archivos
- en la etapa de limpieza restauraría el contenido de su archivos.
Pero eso no es una buena solución, ya que los guiones están a punto sin estado archivo de contenido transformación (ver this SO answer).
Puede intentar aplicar un mecanismo de guardar/restaurar en ganchos (vea la misma respuesta SO), pero tenga en cuenta que será local para su repositorio (protegerá sus archivos en su repositorio solamente, los ganchos no se presionan)
también puede utilizar:
git update-index --assume-unchanged file
Ver "With git, temporary exclude a changed tracked file from commit in command line", de nuevo sólo una protección local. Eso los protegerá contra el empuje externo a su repositorio ("importación"), pero si los publica ("exportar"), puede modificarlos en el lado del cliente.
¿Está .gitignore comprometido con el repositorio? ¿Por qué quieres proteger esos archivos? ¿.gitignore agrega algún tipo de acceso por usuario o su cambio significa que * nobody * podría cambiar esos archivos? ¿Qué está tratando de lograr? –
¿Sería una opción simplemente rechazar los empujes que modifican esos archivos? También podría ofrecer un gancho del lado del cliente para rechazar compromisos erróneos. – Cascabel