es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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'

Tags:  ,

Answer

  1. Avatar for 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.

Comments are closed.