Submodules are special in that they cannot be blindly updated with a checkout. Indeed, submodules do not even have to be checked out (and in that case, must not be updated). It is the user's responsibility to care about the working tree state of submodules. Therefore, it does not make sense in stash/rebase to test for dirty submodules: they would not be updated anyway. This patch series does exactly that: working tree states of submodules are ignored with stash and rebase, by calling update-index and the diff programs with the freshly introduced --ignore-submodules option. Johannes Schindelin (3): diff options: Introduce --ignore-submodules Teach update-index about --ignore-submodules Ignore dirty submodule states during rebase and stash Documentation/diff-options.txt | 3 + Documentation/git-update-index.txt | 5 ++ builtin-update-index.c | 4 ++ cache.h | 1 + diff.c | 9 ++++ diff.h | 1 + git-rebase--interactive.sh | 11 ++-- git-rebase.sh | 8 ++-- git-stash.sh | 6 +- read-cache.c | 4 ++ t/t7402-submodule-rebase.sh | 92 ++++++++++++++++++++++++++++++++++++ 11 files changed, 132 insertions(+), 12 deletions(-) create mode 100755 t/t7402-submodule-rebase.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html