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


当前回答

我喜欢git stash push -u因为你可以用git stash pop.

我还找到了一种方法 在藏物中显示未追踪的文件(例如:git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

内容2:git stash save将作有利于push谢谢 @timp-wolf.

其他回答

我在这里没有使用最流行的答案- 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!

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

git clean -f {dir_path}

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

git clean -fxd {dir_path}

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

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

git clean -d -f -f

要删除未跟踪的文件 :

git add .
git reset --hard HEAD

(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