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


当前回答

清除未跟踪文件的简单方式

要删除所有未跟踪的文件,简单的方法就是先加全部重置重置( R)如下所示

git add --all
git reset --hard HEAD

其他回答

我喜欢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 reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

示例:

git reset --hard HEAD

链接 :

  1. https://git-scm.com/docs/git-reset
  2. 我如何使用“ git reset -- hard HEAD” 重置前一次承诺 ?
  3. 重置本地仓库分支, 使其与远程仓库 HEAD 一样
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

如果您只想删除列表中未被“ gitt status” 跟踪的文件

git stash save -u
git stash drop "stash@{0}"

我更喜欢这个而不是“ 开始清理” , 因为“ 开始清理” 将会删除被忽略的文件, 所以您的下一栋建筑必须重建一切, 您也可能丢失您的 IDE 设置 。

我刚刚发明和尝试的这种情形的救生衣(非常有效):

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