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

git clean是否支持锚定模式?如何保留根目录out目录删除其他out目录

解决方案

这不是Git的bug,是git clean的排除模式匹配逻辑和你预期的略有差异。

要实现删除所有未跟踪文件(包括子目录中的out目录)但保留根目录下的out目录,可以用以下命令:

git clean -xdf -e 'out/' -e '!*/out/'

逻辑说明:

  • -e 'out/':先排除所有名为out的目录(默认不删除)
  • -e '!*/out/':取消排除所有子目录下的out目录(允许删除这些目录)
  • 组合后仅根目录的out会被保留,其他子目录的out都会被删除

如果你确保在仓库根目录执行命令,也可以用更明确的路径匹配:

git clean -xdf -e './out/'

这个命令直接排除当前目录(仓库根目录)下的out目录,子目录中的out不会被匹配到,因此会被正常删除。

你之前命令无效的原因:

  • 使用-e /out/时,部分Git版本中仅用/out/无法正确识别为要排除的目录,导致根目录的out仍被删除。
  • 去掉开头的/后,out/会匹配所有层级的out目录,导致所有out都被排除不删除。

内容的提问来源于stack exchange,提问作者C. Szabo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:06:14