从git存储库中删除被忽略的文件

时间:2014-05-21 14:19:38

标签: git

这是我的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>大约一百万次,他们仍然会流行。为什么会这样?

1 个答案:

答案 0 :(得分:2)

我不确定您的环境是如何设置的,但在我的环境中我有类似的问题,我不得不删除我的生产环境和开发环境中的缓存。我建议你尝试这个命令而不是rm --cached这将更新索引并声明该文件可以保持不变,因此不要在repo中更新它,这在多个人正在处理相同的repo /文件时特别有用

git update-index --assume-unchanged /path/to/file

您还可以尝试使用以下方法取消整个缓存目录:

git rm -r --cached /tmp/cache/

希望这有帮助!