这是我的gitignore:
/.bundle
*.pid
*.sock
dump.rdb
Gemfile.lock
db/*.sqlite3
log/*.log
tmp/**/*
private/**
tmp/cache/**
*.zip
*.log
.DS_Store
.DS_Store?
然而我只是运行git status
和
# modified: tmp/cache/assets/development/sprockets/<hash>
# modified: tmp/cache/assets/development/sprockets/<hash>
# modified: tmp/cache/assets/development/sprockets/<hash>
# modified: tmp/cache/assets/development/sprockets/<hash>
# modified: tmp/cache/assets/development/sprockets/<hash>
# modified: tmp/cache/assets/development/sprockets/<hash>
然而我忽略了tmp/**/*
甚至tmp/cache/**
我为他们所有人运行了git rm --cached tmp/cache/assets/development/sprockets/<hash>
大约一百万次,他们仍然会流行。为什么会这样?
答案 0 :(得分:2)
我不确定您的环境是如何设置的,但在我的环境中我有类似的问题,我不得不删除我的生产环境和开发环境中的缓存。我建议你尝试这个命令而不是rm --cached这将更新索引并声明该文件可以保持不变,因此不要在repo中更新它,这在多个人正在处理相同的repo /文件时特别有用
git update-index --assume-unchanged /path/to/file
您还可以尝试使用以下方法取消整个缓存目录:
git rm -r --cached /tmp/cache/
希望这有帮助!