更新 gitignore 文件后是否可以“刷新”一个 git 存储库?
我刚刚在我的 gitignore 中添加了更多忽略(?),并希望删除与新文件匹配的 repo 中已经存在的内容。
“ .gitignore file notignoring ”中提到的解决方案有点极端,但应该可以:
# rm all files git rm -r --cached . # add all files as per new .gitignore git add . # now, commit for new .gitignore to apply git commit -m ".gitignore is now working"
该--cached选项将保持您的文件在您的磁盘上保持不变。)
--cached
您在博文“让 Git 忽略已跟踪的文件”中还有其他更细粒度的解决方案:
git rm --cached `git ls-files -i --exclude-standard`
编辑中建议:
如果您收到类似 的错误消息fatal: path spec '...' did not match any files,则可能存在路径中带有空格的文件。 您可以使用选项删除所有其他文件--ignore-unmatch:
如果您收到类似 的错误消息fatal: path spec '...' did not match any files,则可能存在路径中带有空格的文件。
fatal: path spec '...' did not match any files
您可以使用选项删除所有其他文件--ignore-unmatch:
--ignore-unmatch
git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`
但是不匹配的文件将保留在您的存储库中,并且必须通过用双引号将其路径括起来来明确删除:
git rm --cached "<path.to.remaining.file>"