bugreport: git checkout --recurse-submodules overwrites unstaged changes

From: Petr Gregor <hidden>
Date: 2018-12-19 07:26:07

Hello,
I believe we found a reproducible bug in git checkout
--recurse-submodules command. Documentation says, that this command
should not overwrite unstaged changes in submodules unless -f is
given. In reality local changes can be accidentally overwritten even
without -f flag.

I reproduced the issue with git version 2.20.1 like this:

git init
git submodule add https://github.com/Gregy/znapzend-debian submodule
git add . && git commit -m 'first'
git checkout -b 'newbranch'
(cd submodule && git checkout a3a7b0)
git add . && git commit -m 'set new branch to different submodule commit'
echo 'test' > submodule/debian/compat #create an unstaged change
git checkout master --recurse-submodules
#my change is overwritten

Thank you for maintaining git, it is awesome!

Petr Gregor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help