我如何从当前工作树中删除未跟踪的本地文件 ?


当前回答

用户互动办法:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

- i 用于交互式
-f 用于武力
-d 用于目录
- 被忽略文件的x( 需要时添加)

注: 添加添加添加- n,n-- 干燥运行检查它能做什么

其他回答

如果需要从特定的子目录中删除未跟踪的文件,

git clean -f {dir_path}

并合并删除未跟踪的 dir/ file 和被忽略的文件 。

git clean -fxd {dir_path}

在此之后, 您将只对文件进行修改git status.

更好的方法就是使用:干净干净

git clean -d -x -f

这将删除未跟踪的文件, 包括目录(-d)git (-x).

另替换-f参数和-n要执行 a/dry-run-i用于交互式模式,它将告诉您要删除什么。

我刚刚发明和尝试的这种情形的救生衣(非常有效):

git add .
git reset --hard HEAD

当心!确定承诺任何所需的更改(甚至在未跟踪的文件中)执行前先执行.

我用这个:

  1. git status
  2. 复制文件的路径
  3. rm <path of file>

我的项目有很多由巨大的 ANT 构建脚本创建的文件。 使用git clean会造成混乱

如果未跟踪的目录是自有的 git 仓库( 如子模块) , 您需要使用-f两次:

git clean -d -f -f