添加 gitignore 后如何删除 cached/tracked 个文件?

How to remove cached/tracked files after adding a gitignore?

我的存储库中有一个名为 Design 的文件夹。我已将 /Design/ 添加到我的 .gitignore 文件中。但是,旧文件仍会被跟踪并出现在 bitbucket 中。如何从我的在线存储库中删除这些缓存文件,但将它们保留在我的计算机上?我过去曾尝试过一些操作,但最终将它们从我的计算机中删除了,我不希望这种情况再次发生!

如果您只想从存储库中删除文件,最简单的方法是

git rm --cached -r Design

更新索引,然后当你提交新的提交时会省略目录。

备份文件,然后执行

git rm -r Design

然后将文件复制回来(根据评论)也可以,但不必要地复杂,因为这正是 --cached 选项的用途。

如果您打算从存储库中完全清除 Design 文件夹,这会更加复杂并且需要重写历史记录(这反过来会产生一些您需要阅读的成本)。您可以找到许多概述所有这些的问题和答案;你会寻找 git filter-branch 信息