You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何递归删除Git工作区追踪文件,仅保留未追踪文件?

解决方案:删除Git追踪文件,保留未追踪文件

核心命令(删除所有追踪文件)

要删除Git工作区中所有被追踪的文件、保留未追踪文件,可使用以下命令:

安全版本(适配含空格/特殊字符的文件名)

git ls-files -z | xargs -0 rm -f

基础版本(文件名无特殊字符时适用)

git ls-files | xargs rm -f

git ls-files 会列出所有被Git追踪的文件路径,xargs rm -f 则逐个删除这些文件。执行前建议先单独运行git ls-files,确认待删除文件列表符合预期。


空目录的处理说明

上述命令不会自动删除操作后变为空的目录。因为Git本身不直接追踪目录(仅通过目录下的文件关联识别目录),删除追踪文件后,原本承载这些文件的目录会变成空目录但保留下来。

如果需要同时清理这些空目录,可额外执行:

find . -type d -empty -delete

该命令会递归扫描当前目录下的所有空目录并删除,注意它会清除所有空目录,包括原本就为空的未追踪目录。


操作逻辑匹配需求

未追踪的文件(包括新创建文件、.gitignore排除的文件)会被完整保留,完全满足你用于数据传输的需求——目标位置只需克隆对应Git仓库,即可恢复所有被删除的追踪文件。

内容的提问来源于stack exchange,提问作者chris_f

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:30:59