有没有办法从本地git工作树中删除所有被忽略的文件?
昨天我花了几个小时调试git repo的一个问题,这个问题没有被git reset HEAD--hard解决,因为引起问题的文件被有没有办法从本地git工作树中删除所有被忽略的文件?,git,Git,昨天我花了几个小时调试git repo的一个问题,这个问题没有被git reset HEAD--hard解决,因为引起问题的文件被.gitignore忽略了。有没有一种方法可以“刷新”或“清理”git repo中所有被忽略的文件,从而只显示git跟踪的文件 我最终通过删除repo并再次从github克隆它来修复我的问题,但在将来,我想立即删除所有潜在问题文件(那些被忽略的文件)。有一个单一的命令解决方案: git ls-files --ignored --exclude-standard | s
.gitignore
忽略了。有没有一种方法可以“刷新”或“清理”git repo中所有被忽略的文件,从而只显示git跟踪的文件
我最终通过删除repo并再次从github克隆它来修复我的问题,但在将来,我想立即删除所有潜在问题文件(那些被忽略的文件)。有一个单一的命令解决方案:
git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached
它所做的是:
- 列出所有被忽略的文件
- 使用空格处理路径以避免失败
- 调用git rm-r--cached从索引中删除所有被忽略的文件(而不从本地计算机中删除它们)
-d
用于删除目录-f
强制移除-n
实际上不删除任何内容,只显示将要执行的操作。-X
仅删除Git忽略的文件。这可能有助于从头开始重建所有内容,但保留手动创建的文件
如果已将忽略的文件添加到索引/暂存中,则必须在使用上述clean
命令之前从跟踪索引中删除这些文件
git rm-rf——缓存。
然后添加除.gitignore文件中提到的文件之外的文件
git add.
尝试处理标记的问题,因为它不是重复的。这是关于被忽略的文件,另一个是关于未跟踪的文件。@DaemonPainter我的问题明确地说我已经这样做了,我在寻求另一种方法。如果你想从本地计算机上删除它们,只需删除--cachedHanks!!这个解决方案确实有效,其他答案实际上并没有删除GitHub上的文件。非常简单和不错的解决方案。:-)在我的例子中,由于repo配置为使用composer构建项目的方式,我还需要添加-x
标志-df
一个人没有给我任何东西可以移除。@PatrickKenny这是一个很好的例子。。把它包括在回答中这是完全不正确的回答!它讨论的是未跟踪的
,而不是忽略的
文件。您也可以使用x
标志而不是x
来删除被忽略和未跟踪的文件。不删除被忽略的文件。
git clean -dfX