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

1 messages from 2018-12-19 to 2018-12-19. Participants: Petr Gregor.
Thread: https://gitlist.dev/t/50064

## Petr Gregor, 2018-12-19 07:25

Subject: bugreport: git checkout --recurse-submodules overwrites unstaged changes
Message-ID: <CAHsG2VT4YB_nf8PrEmrHwK-iY-AQo0VDcvXGVsf8cEYXws4nig@mail.gmail.com>
URL: https://gitlist.dev/e/CAHsG2VT4YB_nf8PrEmrHwK-iY-AQo0VDcvXGVsf8cEYXws4nig%40mail.gmail.com

```
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

```
