Update Git submodule to last commit on origin

Tengo un proyecto con un submódulo Git. Es de un ssh: // ... URL, y está en commit A. El commit B ha sido enviado a ese URL, y quiero que el submódulo recupere el commit y lo cambie.

Ahora, entiendo quegit submodule update debería hacer esto, pero no lo hace. No hace nada (sin salida, código de salida exitoso). Aquí hay un ejemplo:

$ mkdir foo
$ cd foo
$ git init .
Initialized empty Git repository in /.../foo/.git/
$ git submodule add ssh://user@host/git/mod mod
Cloning into mod...
user@host's password: hunter2
remote: Counting objects: 131, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 131 (delta 54), reused 0 (delta 0)
Receiving objects: 100% (131/131), 16.16 KiB, done.
Resolving deltas: 100% (54/54), done.
$ git commit -m "Hello world."
[master (root-commit) 565b235] Hello world.
 2 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 .gitmodules
 create mode 160000 mod
# At this point, ssh://user@host/git/mod changes; submodule needs to change too.
$ git submodule init
Submodule 'mod' (ssh://user@host/git/mod) registered for path 'mod'
$ git submodule update
$ git submodule sync
Synchronizing submodule url for 'mod'
$ git submodule update
$ man git-submodule 
$ git submodule update --rebase
$ git submodule update
$ echo $?
0
$ git status
# On branch master
nothing to commit (working directory clean)
$ git submodule update mod
$ ...

También he probadogit fetch mod, que parece hacer una búsqueda (pero no puede, ¡porque no está solicitando una contraseña!), perogit log ygit show negar la existencia de nuevos commits. Hasta ahora solo he sidorm -ing el módulo y volver a agregarlo, pero esto es incorrecto en principio y tedioso en la práctica.

Respuestas a la pregunta(11)

Su respuesta a la pregunta