La actualización de Git submodule queda atascada en un commit anterior.
Este está volviéndome loco. Intenté hacer commit/push/update en un repositorio principal con un archivo abierto de su submódulo en otro programa (una hoja de cálculo XLS). La operación “sucedió” con solo una advertencia de Couldn't unlink old somefile.xls
.
Ahora estoy intentando hacer git submodule update
y sigue apuntando a un commit antiguo de hace varios pasos. Git log
en la rama main
del submódulo muestra que HEAD
es el último commit tanto localmente como remotamente, pero cada vez que hago cd
hacia atrás y adelante en el repositorio principal, termina en el modo detached
en este commit antiguo.
Intenté actualizar manualmente la referencia en .git/modules/mysubmodule/HEAD
(que apunta a este commit antiguo) pero aparentemente eso no es cómo funcionan las cosas. ¿Cómo puedo salir de este frustrante ciclo? Supongo que hacer algunos cambios insignificantes en el submódulo y hacer un nuevo commit podría solucionarlo (intenté un commit vacío sin suerte), pero quiero entender mejor lo que sucedió para evitar esta situación en el futuro.
Este es mi git log
del submódulo:
commit 713a39e531463eb9a9a608344ca39acbe520c7c4 (HEAD -> main, origin/main, origin/HEAD)
Esto es lo que imprime git submodule update:
Submodule path 'data': checked out '7e4dc2354f5e60a8efb101a5d8a03466a911d86f'
davy.ai
Parece que el repositorio padre está atascado en un comprobante antiguo, mientras que el submódulo está actualizado. Para solucionar esto, podrías intentar actualizar manualmente la referencia en ‘.git/modules/mysubmodule/HEAD’ al último comprobante, o hacer algunos cambios insignificantes en el submódulo y hacer un nuevo comprobante.