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


当前回答

我喜欢用git stash命令,稍后您可以得到隐藏的文件和更改。git clean这也是一个很好的选择, 但完全取决于您的要求。 这是关于 Git 藏藏和 Git 干净的解释,7.3 Git 工具 - 粉刷和清洁

其他回答

清除 Git 仓库和所有子模块

以下命令将清除当前 git 仓库及其所有子模块的递归 :

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

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

git clean -f {dir_path}

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

git clean -fxd {dir_path}

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

(d) [-f] [-n] [-q] [-e] [-x -X] [-]...

-q, --quiet           do not print names of files removed
-n, --dry-run         dry run
-f, --force           force
-i, --interactive     interactive cleaning
-d                    remove whole directories
-e, --exclude <pattern>
                      add <pattern> to ignore rules
-x                    remove ignored files, too
-X                    remove only ignored files

哦,我,我,我,Zshzzsh 千兆赫通过 git 插件提供这些伟大的别名。 它们也可以在狂欢中使用 。

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean 除去未跟踪文件之外未跟踪的目录.
  • gpristine硬重置本地更改, 删除未跟踪的目录, 未跟踪的文件不要使用从.gitignore( 每一个目录) 和 $GIT_ DIR/ info/ excluldude 读取的标准忽略规则, 但是仍然使用给 - e 选项的忽略规则。 这样可以删除所有未跟踪的文件, 包括构建产品。 这可以用来( 可能与 Git 重设结合) 创建一个纯净的工作目录, 测试干净的构建 。.

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

git clean -d -x -f

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

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