我该如何从当前的工作树中删除未被跟踪的本地文件?
如果您只想删除“git status”列出的未跟踪文件
git stash save -u
git stash drop "stash@{0}"
我更喜欢这个方法而不是 'git clean',因为 'git clean' 会删除Git忽略的文件,这样下一次构建就必须重新构建所有内容,您可能还会丢失IDE设置。
git add --all
、git stash
和git stash drop
,按照这个顺序尝试这三个命令以删除所有未跟踪的文件。通过将所有未跟踪的文件添加到 Git 并将它们藏起来,可以将所有未跟踪的文件移动到藏匿列表中,而且删除顶部的那个stash@{0}将从藏匿列表中删除已藏匿的更改。
在实际删除文件之前查看将被删除的内容:
git clean -d -n
它会输出类似以下的内容:
将删除 sample.txt
要删除上一个命令输出列表中的所有内容:
git clean -d -f
它会输出类似以下的内容:
正在删除 sample.txt
要移除未被跟踪的文件,您应该首先使用命令查看哪些文件将受到清理的影响。
git clean -fdn
这将向您显示将要删除的文件列表。现在,要实际删除这些文件,请使用此命令:
git clean -fd
建议从git文档中移除未跟踪的文件的命令是git clean
git clean - 从工作树中删除未跟踪的文件
建议方法: 使用git clean -i
进行交互式模式,
这样我们可以对其进行控制。让我们看看剩下的可用选项。
可用选项:
git clean
-d -f -i -n -q -e -x -X (can use either)
解释:
1. -d
除了未跟踪的文件外,还会删除未跟踪的目录。如果未跟踪的目录由另一个Git存储库管理,则默认情况下不会删除它。如果确实要删除此类目录,则需要使用-f选项两次。
2. -f,--force
如果Git配置变量clean.requireForce未设置为false,则git clean将拒绝运行,除非给出-f、-n或-i选项。
3. -i,--interactive
交互式地显示将要执行的操作并清洁文件。有关详细信息,请参见“交互模式”。
4. -n,--dry-run
不要实际删除任何内容,只是显示将要执行的操作。
5. -q,--quiet
安静模式,仅报告错误,但不报告成功移除的文件。
6. -e,--exclude=
除了在每个目录中找到的.gitignore和$GIT_DIR/info/exclude之外,还考虑这些模式作为有效的忽略规则集。
7. -x
不使用从.gitignore(每个目录)和$GIT_DIR/info/exclude读取的标准忽略规则,但仍使用通过-e选项给出的忽略规则。这可以用于删除所有未跟踪的文件,包括构建产品。这可以(可能与git reset结合使用)用于创建原始的工作目录以测试干净的构建。
8. -X
只删除Git忽略的文件。这可能有助于从头开始重建所有内容,但保留手动创建的文件。
uggested
应该是suggested
,哈哈只是个建议。 - lacostenycoder使用普通的git clean
命令无法删除未跟踪的文件,我的git版本为2.9.0.windows.1
。
$ git clean -fdx # doesn't remove untracked files
$ git clean -fdx * # Append star then it works!
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
例子:
git reset --hard HEAD
链接:
删除所有更改: git clean -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
Clean out git repository and all submodules recursively
The following command will clean out the current git repository and all its submodules recursively:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
git clean
现在有一个交互模式!请参见我对另一个问题的答案:git 1.8.4+ - VonCgit status
命令,如果它显示有一个文件未被跟踪,并且你不想将该文件添加到版本库中,你可以直接在文件系统中删除或移动它。这样不会对你的本地仓库或 Git 造成任何损害。你也可以使用git clean
或以下答案中的某些变体,包括交互式版本,以仅删除选择的文件,但交互模式可能很繁琐。无论你做什么,一定要确保你理解git clean
将删除哪些内容,或使用--dry-run
让它告诉你而不会真正执行删除操作。 - LightCCrm files-to-be-deleted
。 - mhatch