【问题标题】:How does Git retrieve deleted files which are deleted from both local and remote repositories?Git 如何检索从本地和远程存储库中删除的已删除文件?
【发布时间】:2016-06-10 20:27:23
【问题描述】:

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

【问题讨论】:

  • 存储与每个提交相关的每个文件的每个版本是版本控制系统的目的。有关内部信息,请参阅 Pro Git 书籍 git-scm.com/book/en/v2
  • 我明白了。我只是想知道这是怎么做到的。
  • 细节变得复杂到一定程度,但stackoverflow.com/a/8267078/1256452 有一个很好的概述(尽管没有插图)。

标签: git github filesystems recovery


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 1970-01-01
    • 2014-07-29
    • 2012-08-31
    • 2014-11-19
    • 1970-01-01
    • 2012-11-28
    • 2013-06-03
    • 2017-08-15
    相关资源
    最近更新 更多