Git hook para actualizar el submódulo Git en el cambio de rama

Estoy trabajando con un código antiguo que hace uso de submódulos Git. El código tiene varias ramas divergentes que se utilizan activamente, y cada una de estas ramas depende de una revisión diferente de los submódulos relevantes; @esto ha hecho que el desarrollo sea extremadamente complicado. Uno de los problemas a los que me enfrento es que, cuando cambio entre ramas, p. @master anewfeature-foo utilizandogit checkout newfeature-foo, el estado de los submódulos permanece en el demaster, que a menudo causa errores de compilación y, lo que es peor, puede causar diferencias en el comportamiento del tiempo de ejecución que causa estragos en las pruebas del usuario y la cordura general.

Por ejemplo, dada la.gitmodules configuración:

[submodule "robotcontroller"]
    path = robotcontroller
    url = https://coolrobots.com/repos/robotcontroller
    branch = master
    ignore = dirty
la ramamaster en commit 77d4697 tiene una referencia arobotcontroller @ f57d1b3la ramanewfeature-foo a b38d29f tiene una referencia arobotcontroller @ 60b27d4la ramamaster a 873639f no tiene el submódulorobotcontroller en absolutla ramanewfeature-foo a 301dca4 tiene una referencia arobotcontroller @ bdf5991

No hay manera, p. usando ganchos Git para forzar el re-check completo automático de todos los submódulos listados en una.gitmodules archivo cuando cambia al finalizar la compra del repositorio Git "raíz"?

Respuestas a la pregunta(2)

Su respuesta a la pregunta