¿Cómo actualizar un repository git que contiene un submodule?

Después de un time, quise actualizar mi repository git, y luego algo salió mal. ¿Cuál es la forma correcta de salir de esta situación?

mblsha@siruba:~/src/psi/ $ git status iris: needs merge # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: src/common.cpp # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # unmerged: iris # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # gupdate.sh mblsha@siruba:~/src/psi/ $ git submodule status +cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) +cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) +cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) mblsha@siruba:~/src/psi/ $ cd iris mblsha@siruba:~/src/psi/iris/ $ cat .git/HEAD cf237ef8f3d9dc058dbde47e6973e6388608ce60 

Cuando se trata de submodules de git, casi cualquier problema que encuentre se puede resolver de la siguiente manera:

 1. deleting the submodule (rm -r iris) 2. recreating it again (git submodule update) 

Obviamente, si ha realizado cambios locales en su submodule, esto lo BORRARÁ PERMANENTEMENTE, por lo que si tiene cambios locales, asegúrese de haberlos pulsado primero.

Publiqué una pregunta similar aquí en stackoverflow y terminé respondiéndola yo mismo, pero descubrí que usar git reset HEAD iris funcionaba para mi problema con conflictos de submodules.