git ignore filemode config no funciona

Estoy usando gitolite git server en un server ubuntu linux. Usé un gancho que se llamará en cada inserción y actualizaré el directory de un server (que incluye el código fuente del sitio en vivo).

Ahora, cada vez que cambio algo en mi PC local y envío los cambios al server, se llama al gancho y la request de extracción se ejecuta correctamente. Pero el problema es que los files que se actualizaron ahora están cambiando de permiso. Me gusta:

rwxrwxr_x (before) rwx_____x (After) 

Después de algunas búsquedas, se me ocurrió esta solución . Lo intenté tanto con mi configuration global de git como con la configuration de configuration específica del repository. Después de configurar la configuration, cada vez que trato de presionar desde mi PC local, el mismo problema está sucediendo nuevamente como en el ejemplo anterior, por lo que parece que, por alguna razón, la solución no funciona.

¿Alguien tiene alguna idea, cuál puede ser la razón, por favor? ¿Tengo que hacer algo adicional además de la configuration de configuration? Cualquier sugerencia es bienvenida. Gracias por adelantado.

Como OP Rana confirma en los comentarios , si el gancho comienza con:

 umask 002 

Generará files con la protección adecuada.


Alan Thompson menciona:

core.filemode solo afecta a diffs contra tu directory de trabajo, no diffs entre 2 commits en el repository.
Por lo tanto, si ya ha confirmado los diferentes modos de file, tendrá que usar filter-branch , como en " ¿Puedo hacer que git diff ignore los cambios de permissions "?

 git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all