有没有办法从git仓库中删除所有被忽略的文件?

时间:2017-09-18 06:42:19

标签: git

昨天我花了几个小时调试我的git repo的问题,git reset HEAD --hard没有解决这个问题,因为导致问题的文件被.gitignore忽略了。有没有办法“刷新”或“清理”所有被忽略的文件的git仓库,以便只存在由git跟踪的文件?

我终于通过删除repo并再次从github克隆它来修复我的问题,但是在将来,我想立即删除所有可能存在问题的文件(那些被忽略的文件)。

2 个答案:

答案 0 :(得分:34)

git clean -dfX

git-clean - 从工作树中删除未跟踪的文件
-d用于删除目录
-f强行删除 -n实际上不要删除任何内容,只显示将要执行的操作 -X仅删除Git忽略的文件。这可能有助于从头开始重建所有内容,但保留手动创建的文件。

答案 1 :(得分:6)

有一个命令解决方案:

git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached

它的作用是:

  • 列出所有被忽略的文件
  • 处理带空格的路径以避免失败
  • 调用git rm -r --cached从索引中删除所有被忽略的文件(不从本地计算机中删除)