Now that the BIG one has landed, e394fa01d6 (Merge branch 'sb/checkout-recurse-submodules', 2017-03-28), you would expect that teaching to recurse into submodules is easy for all the remaining working tree manipulations? It turns out it is. See the last patch how we teach git-reset to recurse into submodules. However when thinking more about what git-reset is expected to do, I added tests and some fixes for them (patch 2+3). patch 1 is a correctness thing, required for patch 3. Thanks, Stefan Stefan Beller (4): entry.c: submodule recursing: respect force flag correctly submodule.c: uninitialized submodules are ignored in recursive commands submodule.c: harden submodule_move_head against broken submodules builtin/reset: add --recurse-submodules switch builtin/reset.c | 30 ++++++++++++++++++++++++++++++ entry.c | 8 ++++---- submodule.c | 20 ++++++++++++++++++++ t/lib-submodule-update.sh | 24 +++++++++++++++++++++--- t/t7112-reset-submodule.sh | 8 ++++++++ unpack-trees.c | 7 ++++++- 6 files changed, 89 insertions(+), 8 deletions(-) -- 2.12.2.603.g7b28dc31ba