Bug with .gitignore and branch switching
- From
- Nevada Sanchez <sanchez.nevada@gmail.com>
- Date
- Mar 17, 2017, 20:42 UTC
- Message-ID
- <CAPUVn2u0Uos2mT5+4ejj8m0okNK6XwerL6ce2miHfhtuEs-ZnQ@mail.gmail.com>
Here's an easy to reproduce bug. It's the only example I know of where git legitimately loses data in a way that is unrecoverable, unexpected, and without warning.
``` git --version # git version 2.12.0
mkdir git-demo cd git-demo
git init
# Commit a file that will end up in .gitignore echo 'original settings' > mine.conf git add mine.conf git commit -m "Unknowingly committed my settings."
echo '*.conf' > .gitignore git add .gitignore git commit -m "Users shouldn't commit their settings"
# Spin off a feature branch here (but don't check it out) git branch feature
# Realize that we don't want that file committed git rm mine.conf git commit -m "Delete mine.conf"
echo 'Lots of laboriously tuned settings' > mine.conf
# Hop on the feature branch to do some work git checkout feature
# Hmmm... My settings are gone cat mine.conf # original settings
# Lemme hop back git checkout master
# Wait... they are gone for good! cat mine.conf # cat: mine.conf: No such file or directory ```