【发布时间】:2019-09-13 12:50:53
【问题描述】:
在git reset --mixed 之后,我之前暂存的新文件变为未暂存。
是否可以恢复 git reset 执行之前的阶段状态?
【问题讨论】:
-
这是可能的,使用
git fsck --lost-found,它将未引用的 blob 放入可以检查它们的子目录中。不过,这通常比重新创建它们要困难得多,因为往往有很多这样的 blob,并且 所有 名称都被破坏了,而且很难弄清楚lost+found 中的哪些文件是哪些。 -
@torek 我并没有丢失我的文件,它们只是没有暂存
-
请注意,
--lost-found选项不仅适用于 files,它还可以查找悬空提交。但是,您确实丢失了暂存区中的副本。但这就是为什么所有这些都是评论而不是答案的原因——这些都是围绕“暂存区”如何真正运作的一般概念的外围内容。具体来说,该阶段包含进入下一次提交的每个 文件的副本。当您使用git reset --mixed时,您是在告诉 Git:删除其中的副本,然后放入来自HEAD的副本。