代码之家  ›  专栏  ›  技术社区  ›  kyb thursdaysDove

从Git中提取元信息,允许Git日志而不获取完整的repo

  •  0
  • kyb thursdaysDove  · 技术社区  · 6 年前

    在部署中使用Git时,通常需要了解提交历史和关系。回购规模小的时候没有问题。但要想让大型存储库获得完整的历史记录,就必须获取所有对象。此操作消耗大量带宽和时间。

    所以,问题是:

    需要在不获取内容的情况下操作大型Git回购的历史记录。

    如果能拿到几个MBs然后开始工作就好了 git log git rev-parse , git rev-list ,等等,无法签出内容。

    同上。专用分公司 _元信息

    存储输出 git日志 但是这种方法需要自己的解析器。
    这适用于非常简单的任务。

    同上。删减文件内容

    git filter-branch tree-filter "echo >**" (伪代码)。但提交和保存此哈希消息的日期将更改。旧的提交哈希可以添加到过滤的提交消息中。

    upd公司
    谢谢你的回答。我已经读过可能的副本,并且知道: “目前没有解决方案”

    1 回复  |  直到 6 年前
        1
  •  2
  •   torek    6 年前

    你要找的东西今天没有货。你可以像你所建议的那样做,但是Git的作者正在研究一种不同的方法。Git 2.19有一些构建块: 承诺包

    一个包含提交对象但只对所有文件对象有承诺的存储库将能够 git log (没有 -p ). 获取部分或全部承诺的树和blob对象将使 以及其他附加操作。一旦所有的承诺都实现了,您就拥有了一个正常的存储库。

    然而,即使是git2.19也没有完成这项工作所需的所有代码。它只有 承诺。看到了吗 this GitHub blog entry (链接直接指向“部分克隆”工作)或 Git source technical design notes