如何从当前工作树中删除未追踪的本地文件?
当前回答
我喜欢使用 git stash 命令,以后你可以得到 stashed 文件和更改. git clean 也是一个很好的选择,但完全取决于你的要求. 这里是 git stash 和 git clean 的解释,7.3 Git 工具 - Stashing 和 Cleaning
其他回答
如果需要从特定子目录中删除未追踪的文件,
git clean -f {dir_path}
并结合的方式来删除未追踪的Dir/文件和被忽略的文件。
git clean -fxd {dir_path}
此后,您将仅在 git 状态中修改文件。
我用这个:
git 状态 复制文件路径 rm <文件路径>
我的项目有很多由一个巨大的 ANT 构建脚本创建的创建文件,使用 git clean 会产生混乱。
git-clean 是你正在寻找的,它被用来从工作树中删除未追踪的文件。
在运行清洁命令之前,总是使用 -n,因为它会向您展示哪些文件会被删除。
通常情况下,当没有确定的情况下,Git Clean 不会返回未跟踪的目录,以避免删除太多。 指定 -d 以便返回此类目录。 如果任何路径是确定的, -d 是无关紧要的; 所有未跟踪的文件符合确定的路径(除非在 --force 中提到的未跟踪的Git目录)将被删除。
git clean -n -d
git clean -n -d -f
git clean -d -f
默认情况下, git clean 只会删除未追踪的文件,这些文件不会被忽视. 任何符合您的.gitignore 或其他 ignore 文件中的模式的文件将不会被删除. 如果您想要删除这些文件,您可以将 -x 添加到清洁命令。
git clean -f -d -x
git clean -x -i
If you are not 100% sure that deleting your uncommitted work is safe, you could use stashing instead
git stash --all
git stash push --keep-index
呼叫 git stash 没有任何论点,相当于 git stash push。
git stash push -m "name your stash" // before git stash save (deprecated)
git stash drop // or clean
要查看关于如何使用 stash 的完整指示,请参见此 如何在 git 中以名称命名和获取 stash?
对于我刚刚发明并尝试的这种情况的一种生活哈克(这非常好):
git add .
git reset --hard HEAD
注意! 请确保在执行此事之前进行任何必要的更改(即使在未被拖动的文件中)。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- 在GitHub上有一个公共回购的私人分支?
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式