How to remove local (untracked) files from the current Git working tree?
如何从当前工作树中删除未跟踪的本地文件?
As per the Git Documentation git clean
Remove untracked files from the working tree
Step 1 is to show what will be deleted by using the -n
option:
git clean -n
Clean Step - beware: this will delete files :
git clean -f
git clean -f -d
or git clean -fd
git clean -f -X
or git clean -fX
git clean -f -x
or git clean -fx
Note the case difference on the X
for the two latter commands.
If clean.requireForce
is set to "true" (the default) in your configuration, one needs to specify -f
otherwise nothing will actually happen.
Again see the git-clean
docs for more information.
Options
-f
--force
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to run unless given -f, -n or -i.
-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.
-X
Remove only files ignored by Git. This may be useful to rebuild everything from scratch, but keep manually created files.
-n
--dry-run
Don't actually remove anything, just show what would be done.
-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.
Use git clean -f -d
to make sure that directories are also removed.
You can then check if your files are really gone with git status
.
I am surprised nobody mentioned this before:
git clean -i
That stands for interactive and you will get a quick overview of what is going to be deleted offering you the possibility to include/exclude the affected files. Overall, still faster than running the mandatory --dry-run
before the real cleaning.
You will have to toss in a -d
if you also want to take care of empty folders. At the end, it makes for a nice alias:
git iclean
That being said, the extra hand holding of interactive commands can be tiring for experienced users. These days I just use the already mentioned git clean -fd
上一篇: 将分支完全重置为存储库状态?