Я нашел способ, которым git не будет просить вас хранить, но вместо этого спокойно удаляйте файлы, которые считаются безопасными в .gitignore. Это верно, даже если у вас был тот же файл игнорирования с момента вашего первоначального коммита.
Проблема возникает, когда вы находитесь в коммите, который имеет указанный файл, который был удален, но указан в .gitignore, а затем вы проверяете другую фиксацию там, где она существовала:
git init
mkdir ignored/
echo stuff > ignored/file
echo otherstuff > otherfile
git add -A
# Opps added my ignored folders files
# Forgeting to rm --cache
echo ignored/ > .gitignore ; git add .gitignore
git commit -m 'accidentally add ignored/file'
git status
touch dummyfile; git add dummyfile
# Remembered to rm --cache
git rm --cache -rf ignored/file #This file is now vulnerable to clobber
git commit -m 'add stuff'
echo somechange >> ignored/file
## Wait for it..
git checkout HEAD~
## somechange has been silently clobbered!!
# Please paste first paragraph, observe and then past the second.
# Note both commits have the correct ignore file and are not immune!
(cd в пустую папку, прежде чем вставлять код в терминал)
Во всяком случае, чтобы предотвратить этот тихий clobber?