Today's "I fucking hate git! I don't understand why people put up with git!" discovery:
Imagine you have a project with multiple submodules, some of which are optional.
You run:
git submodule update --init --recursive --progress
One of the optional submodules is taking too long. You CTRL-C.
*All* your submodules are now in an inconsistent state! If you run:
git submodule update --init --recursive --progress -- external/FNA
This is now a no-op, although external/FNA is not checked out.