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


当前回答

我认为最安全、最容易的方式就是这样!

git add .
git stash 

更多信息 https://www.atlassian.com/git/tutorials/saving-changes/git-stash#stashing-your-work

其他回答

删除未追踪的文件的简单方法

要删除所有未追踪的文件,简单的方式是先添加所有文件并重新设置下面的复制文件。

git add --all
git reset --hard HEAD

我们可以轻松地从当前 git 工作树中删除本地未追踪的文件,使用下面的 git 评论。

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

例子:

git reset --hard HEAD

左:

https://git-scm.com/docs/git-reset 如何使用‘git reset --hard HEAD’ 返回以前的承诺? 恢复本地存储分支 就像远程存储分支 HEAD https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

git-clean - 从工作树中删除未追踪的文件 同步 git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x♰ -X] [--] <path>... 描述 通过从当前目录开始,不受版本控制的文件重新删除工作树。


# Print out the list of files and directories which will be removed (dry run)
git clean -n -d

# Delete the files from the repository
git clean -f

注意后两个命令的 X 中的案例差异。


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

git clean -f {dir_path}

并结合的方式来删除未追踪的Dir/文件和被忽略的文件。

git clean -fxd {dir_path}

此后,您将仅在 git 状态中修改文件。

用户互动方法:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

-i for interactive -f for force -d for directory -x for ignored files(添加必要时) 注意: 添加 -n 或 -dry-run 只需检查它会做什么。