Git 如何检索从本地和远程存储库中删除的已删除文件?

How does Git retrieve deleted files which are deleted from both local and remote repositories?

令我惊讶的是,我们可以随时检索被删除一次并被新文件覆盖的文件。 Git 是否将文件的每个实例永久存储在服务器上?

这是我的理解。 Git 将 blob 存储为哈希名称。文件存储为哈希列表,并通过连接组成它的 blob 在工作树上创建(对于小文件,通常只有一个 blob)。可以通过连接不同的 blob 来制作同一文件的不同版本。 Blob 存储在 .git 目录中,只要有对它们的引用就会一直保留。即,如果任何标记、提交、引用日志、存储等包含引用该 blob 的文件(或其他任何内容)。 'git gc' 将删除超过两周的未引用 blob。