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


当前回答

要知道在实际删除之前会删除什么:

清洁 -d -n

它会产生这样的东西:

将移除 sample.txt

要删除前命令输出中列出的所有内容:

清洁 -d -f

它会产生这样的东西:

删除 sample.txt

其他回答

oh-my-zsh 与 zsh 提供这些伟大的联盟通过 git 插件. 它们也可以在 bash 中使用。

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

gclean 除去未追踪的目录除了未追踪的文件. gpristine 硬重定义本地变更,删除未追踪的目录,未追踪的文件,不要使用从.gitignore (每个目录) 和 $GIT_DIR/info/exclude 阅读的默认忽略规则,但仍然使用与 -e 选项提供的忽略规则。

git-clean - 从工作树中删除未追踪的文件 同步 git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x♰ -X] [--] <path>... 描述 通过从当前目录开始,不受版本控制的文件重新删除工作树。


# Print out the list of files and directories which will be removed (dry run)
git clean -n -d

# Delete the files from the repository
git clean -f

注意后两个命令的 X 中的案例差异。


我已经失败了使用最受欢迎的答案在这里 - git 不会从存储库中删除未追踪的文件,无论如何. 不知道为什么. 这是我的超简单的答案,没有特殊的 GIT 命令!

任务:从 git 存储库中删除未追踪的文件:

移动文件和文件夹到其他地方从您的本地项目文件夹一段时间 删除所有行在.gitignore 关于这些文件和文件夹的承诺 Git 添加. Git 承诺 -m “从未追踪的文件中清除存储库” Git push

所有文件和文件已从存储库中删除。

如果您需要,请在本地恢复它们:

将您暂时移动到本地项目文件夹的所有文件和文件夹返回 将这些文件和文件夹的所有行返回.gitignore Git 添加. Git commit -m “检查或文件不再显示在 git 存储库” Git push

你已经完成了!

在此 repo + 子模块中删除所有额外的文件和文件

这将使你处于新鲜的克隆状态。

git clean -ffdx

在此 repo 中删除所有额外的文件夹和文件,但不是其子模块

git clean -fdx

删除额外的文件夹,但不删除文件(例如构建或登录文件夹)

git clean -fd

删除额外的文件夹 + 被忽略的文件(但不新添加的文件)

如果文件没有被忽视,并且还没有被检查,那么它仍然存在。

git clean -fdX

新互动模式

git clean

好吧,删除不需要的未追踪文件和文件夹是容易使用 git 在命令行,只是这样做:

git clean -fd

在做之前双检查,因为它会删除文件和文件夹,而不会创建任何历史。

所以,如果你只想删除文件,你只能使用 -f:

git clean -f

如果您想要删除(目录)和文件,您只能删除未追踪的目录和文件如下:

git clean -fd

并添加 -i 旗帜,使 git 请求您的许可,以便在行程中单独删除文件。

如果您不确定,并希望先检查事物,请添加 -n 旗帜。

使用 -q 如果您不希望在成功删除后看到任何报告。

我也创建下面的图像,使它更令人难忘,特别是我已经看到许多人混淆 -f 为清洁文件夹有时或混合它在某种程度上!