bugreport: git checkout --recurse-submodules overwrites unstaged changes
- From
- Petr Gregor <gregy@gregy.cz>
- Date
- Dec 19, 2018, 07:25 UTC
- Message-ID
- <CAHsG2VT4YB_nf8PrEmrHwK-iY-AQo0VDcvXGVsf8cEYXws4nig@mail.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