【发布时间】:2018-02-28 06:29:51
【问题描述】:
来自git reset --hard HEAD leaves untracked files behind:
当我运行
git reset --hard HEAD时,它应该重置为 据我了解,您所提取的原始版本。 不幸的是,它会留下文件,因为git status显示了 未跟踪文件的大列表。你如何告诉 git“只要把它恢复到最后一次拉取的内容,仅此而已,仅此而已”?
要删除这些文件,我必须运行 git clean -df。
谁能解释一下为什么它会这样工作以及哪些文件会变得无法追踪?
【问题讨论】:
-
因为 git 非常非常小心,不会破坏它无法恢复的工作(它对它一无所知的工作)。由于这些文件未跟踪,git 无法返回到它们的早期版本,因此将它们单独用于结帐、重置等日常操作。“将其恢复到最后一次提取”重点是:您知道 - 作为阅读目录列表的人 - 项目状态是什么,但 git 不知道,因为未跟踪的文件是 untracked。
-
所以所有在 HEAD~X 提交中不存在的文件,都将变得不被跟踪?
-
不,在 HEAD 中跟踪但不在 HEAD~X 中的文件也将被删除。