如何从当前工作树中删除未追踪的本地文件?
当前回答
我喜欢 git stash push -u 因为你可以用 git stash pop 放下它们。
编辑: 我也找到了一个方法,以显示未追踪的文件在一个插件(例如 git 显示 stash@{0}^3) https://stackoverflow.com/a/12681856/338986
EDIT2: git stash save 被推翻为 push. 谢谢 @script-wolf。
其他回答
我已经失败了使用最受欢迎的答案在这里 - git 不会从存储库中删除未追踪的文件,无论如何. 不知道为什么. 这是我的超简单的答案,没有特殊的 GIT 命令!
任务:从 git 存储库中删除未追踪的文件:
移动文件和文件夹到其他地方从您的本地项目文件夹一段时间 删除所有行在.gitignore 关于这些文件和文件夹的承诺 Git 添加. Git 承诺 -m “从未追踪的文件中清除存储库” Git push
所有文件和文件已从存储库中删除。
如果您需要,请在本地恢复它们:
将您暂时移动到本地项目文件夹的所有文件和文件夹返回 将这些文件和文件夹的所有行返回.gitignore Git 添加. Git commit -m “检查或文件不再显示在 git 存储库” Git push
你已经完成了!
我很惊讶以前没有人提到这一点:
git clean -i
它是互动的,你会得到一个快速的概述,什么将被删除,为您提供包含 / 排除受影响的文件的可能性。
你必須在 -d 如果你也想照顧空的文件夾。
git iclean
说到这一点,对互动命令的额外持有可能令人兴奋的经验丰富的用户,如今我只使用已经提到的 git clean -fd
git clean -f 从工作目录中删除未追踪的文件。
我在我的博客中包含了一些基本内容, git-intro-basic-commands
在运行清洁命令之前,总是使用 -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?
在此 repo + 子模块中删除所有额外的文件和文件
这将使你处于新鲜的克隆状态。
git clean -ffdx
在此 repo 中删除所有额外的文件夹和文件,但不是其子模块
git clean -fdx
删除额外的文件夹,但不删除文件(例如构建或登录文件夹)
git clean -fd
删除额外的文件夹 + 被忽略的文件(但不新添加的文件)
如果文件没有被忽视,并且还没有被检查,那么它仍然存在。
git clean -fdX
新互动模式
git clean
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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日志日期格式