我了解当我checkout
或reset --hard
特定提交/分支时,我会在我的工作目录和索引文件中获得相关内容。
但是 Git 如何在内部重新构建索引和工作目录内容checkout
或reset --hard
.
是否通过读取我们已签出/重置到的提交指向的树来完成索引恢复?
工作目录是否也以同样的方式恢复?
这是否意味着之后reset --hard
或checkout <some_branch>
索引和工作目录将始终与该提交的树匹配,因为它们是从中重建的?
编辑:我基本上要问的是:索引/WD 内容的恢复是使用我们到达的提交指向的树完成的吗?因为在我看来,git 没有其他方法可以获取该内容,而不是从提交历史记录中获取