Is there a way to remove all ignored files from a git repo? 
昨天,我花了几个小时调试了我的Git repo的一个问题,这个问题不是由git reset HEAD --hard解决的,因为导致该问题的文件被.gitignore忽略了。是否有一种方法可以"刷新"或"清除"所有被忽略的文件的git repo,以便只存在git跟踪的文件?
我最终通过删除repo并再次从github克隆来解决了我的问题,但将来,我希望立即删除所有潜在的问题文件(那些被忽略的文件)。
		
		
- 在一个公平的竞争环境git cleantry
- 这不是一个重复标记的问题。本谈论忽略的文件,另一个谈论跟踪文件。
 
	 
git clean-从工作树中删除未跟踪的文件用于删除目录的-d-f强行拆除-n实际上没有删除任何内容,只是显示将要做什么。-X只删除git忽略的文件。这对于从头开始重建所有内容可能很有用,但保留手动创建的文件。
		
		
- 在我的例子中,由于repo被配置为使用composer构建项目,所以我还需要添加-x标志;仅-df没有给我任何要删除的内容。
- @帕特里克肯尼,那是一个很好的……包括在答案里
- 这是完全错误的答案!它谈论的是untracked文件,而不是ignored文件。
- 您还可以使用x标志而不是x来删除被忽略和未跟踪的文件。
 
	 
有一个单一的命令解决方案:
| 1
 | git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached | 
它的作用是:
- 列出所有忽略的文件
- 处理带有空格的路径以避免失败
- 调用git rm-r--cached从索引中删除所有被忽略的文件(而不从本地计算机中删除它们)
		
		
- 如果您还想从本地计算机中删除它们,只需删除--cached
- 谢谢!!此解决方案确实有效,其他答案不会删除GitHub上的文件。
- 这不管用了。