从git reset --hard HEAD leaves untracked files behind:为什么`git reset --hard HEAD〜X`将未跟踪的文件留在后面?
当我运行
git reset --hard HEAD
,它应该重置为你拉什么 原始版本,据我所知。 不幸的是,它将文件留在周围,因为git status
显示一个 未跟踪文件的大列表。你怎么告诉git“只要把它带回到最后拉什么,什么都没有,什么都不少”?
要摆脱这些文件,我必须运行git clean -df
。
有人可以请解释为什么它以这种方式工作,哪些文件将成为未跟踪?
因为git非常非常小心,不会破坏它无法恢复的工作(工作它不知道任何事情)。由于这些文件是* untracked *,所以git不能回到它们的早期版本,因此让它们独立于结账,重置等日常操作。“将它带回最后的拉”是重点:你知道 - 作为一个阅读目录列表的人类 - 项目状态是什么,但git没有未跟踪的文件是_untracked_。 – msanford
因此,在HEAD〜X提交中不存在的所有文件都将变为未跟踪? –
不,在HEAD中跟踪但不在HEAD〜X中的文件也将被删除。 – poke