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


当前回答

git clean -f -d -x $(git rev-parse --show-cdup)对根目录应用干净, 无论您在仓库目录树中将其命名为哪里。 我总是使用它, 因为它不会迫使您离开您现在工作所在的文件夹, 并允许您从所在位置清除并承诺 。

确定该旗帜-f, -d, -x匹配您的需要 :

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

还有其他的旗帜 也有其他的,只是检查git clean --help.

其他回答

使用git reset HEAD <file>以卸开一个文件

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

这让你和新克隆人处于同样的状态

git clean -ffdx

删除此回调中的全部额外文件夹和文件, 但不删除子模块

git clean -fdx

删除额外的文件夹, 但不包括文件( 如: 构建或日志文件夹) 。

git clean -fd

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

如果文件没有被忽略, 还没有被检查, 那么它会留下来 。 请注意首都 X 。

git clean -fdX

新的互动模式

git clean

要删除完整更改git 清洁 -f -d

$ git clean -f -d
Removing client/app/helpers/base64.js
Removing files/
Removing package.json.bak

where 
-f is force 
-d is a directory 

我在这里没有使用最流行的答案- git 不删除存储处的未追踪文件 。 不知道为什么 。 这是超简化的答案, 没有特别的 GIT 指令 !

任务: 从 git 仓库删除未跟踪的文件 :

  1. 将本地工程文件夹中的文件和文件夹移动一段时间
  2. 删除 . gitignore 中关于此承诺的文件和文件夹的所有行
  3. Git 添加 。
  4. Git 承诺 -m “从未跟踪的文件中清除存储库”
  5. Git 推动

从仓库中删除了所有文件和文件夹 。

如果您需要的话, 请在本地主机上恢复它们 :

  1. 将所有已临时移至本地工程文件夹的文件和文件夹再移到本地工程文件夹
  2. 将这些文件和文件夹的所有行后移到. gitignore
  3. Git 添加 。
  4. Git 承诺 -m “检查或在 Git 仓库中不再出现文件”
  5. Git 推动

你完蛋了! 你完蛋了! You are done!

(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