No se puede activar el enganche git post-commit en el submodule git

Usamos un module git con varios submodules. Para hacerlo más conveniente para el uso diario, quería tener un gancho post-commit que automáticamente agrega el submodule al índice git en el principal / super / root git repo / clone / module como git add mychangedsubmodulename para prepare una confirmación list para actualizar la reference de confirmación del submodule en el repository principal y probablemente haya más ideas por venir.

La carpeta .git se encuentra dentro de la carpeta raíz del module principal y parece contener también los elementos relacionados con el submodule como resultado de haber clonado el repository principal con la opción --recursive . Mi versión de git es git version 2.6.4 (Apple Git-63) .

Podría crear fácilmente un gancho post-commit en el repository principal, pero no se activa a partir de commits dentro de un submodule, que considero correcto y apropiado hasta ahora, pero también podría ser una pista para una posible solución alternativa.

He intentado definir varios files gancho post-commit en diferentes ubicaciones también siguiendo la pregunta 10848191 sin ningún éxito.

¿Cómo puedo lograr modificar automáticamente el module principal en commits en un submodule?

Actualización: después de que el gancho post-commit del submodule ahora funciona a veces, logré ingresar al repository principal e invocar git limpiando las variables de entorno.

 # clear git environment or git would confuse main and sub repos when crossing boundary by only changing pwd while read variable; do unset $variable done < <(env | grep "^GIT_" | sed 's/=.*//g') 

Sin embargo, la pregunta original era cómo disparar el gancho del submodule. Esto parece funcionar solo algunas veces, aún.

Puede utilizar algo como a continuación dentro de su gancho post-commit:

git --work-tree=$PWD/.. --git-dir=$PWD/../.git branch

El command anterior se toma del file .git/modules/my-sub-module/hooks/pre-commit en mi git version 2.3.2 (Apple Git-55) . Estoy usando el command anterior para enumerar todas las twigs locales del repository principal.

NOTA: Desafortunadamente, cambiar el directory y ejecutar los commands de git dentro de los enganches post-commit puede no funcionar, debido a que el git depende de algunas de las configuraciones pnetworkingeterminadas preconfiguradas y env-vars. Así que en mi caso, cd path-to-main-repo-directory && git some-command dentro de mi .git/modules/my-sub-module/hooks/pre-commit no me ayudó.

También puede consultar el manual aquí para más detalles.