git clean 不清除不需要的文件夹

git clean does not clean unwanted folder

我有一个 .NET 解决方案,在切换回 master 分支后,留下了一个项目文件夹。我想清理这个文件夹(里面只有 bin 和 obj 文件夹,还有一些旧的 dll)所以我尝试了 git clean -f -d。这没有用。

我使用 git ls-tree test/flat -r --name-only 检查了 git 正在跟踪哪些文件,果然没有列出要清理的项目文件夹。

我应该怎么做才能说服 git 清理工作文件夹,使其内容只包含 master 分支中的内容?

注意:不需要的项目文件夹也不会被忽略。

如果该文件夹中有被忽略的文件,git clean 不会删除该文件夹。

您想要研究的选项(可能使用所有三个选项)是:

  • -f: 强制git 清除文件
  • -d: 除了未跟踪的文件外,还删除未跟踪的目录
  • -x:删除被git
  • 忽略的文件

这个命令:

git clean -fdx

应该删除 所有 个未跟踪的文件和目录。

注意! 我之所以这样说是因为很多人没有阅读警告标签,如果这样做,您将无法取回这些文件。他们走了。除了 git 之外,您还需要磁盘或文件级备份 才能还原这些文件。

使用“git clean -ifdx”以交互方式删除文件和目录。这样您就可以避免意外删除文件。 Git 显示将要删除的文件列表,并要求您从选项中进行选择。

git clean 默认情况下不会删除被 git 忽略的文件。

添加 -x flag to remove ignored files as well or the -X flag 以仅删除忽略的文件和目录

git clean -fdx
git clean -fdX