gpt4 book ai didi

git - git分支和标签如何存储在磁盘中?

转载 作者:太空狗 更新时间:2023-10-29 13:16:16 26 4
gpt4 key购买 nike

我最近在工作中检查了我的一个git存储库之一,该存储库具有10,000多个分支和30000多个标签。新鲜克隆后,回购的总大小为12Gigs。我确信没有理由要有10000个分支机构。因此,我相信它们会在磁盘中占据相当大的空间。所以,我的问题如下

  • 如何将分支和标记存储在磁盘中,例如使用的数据结构如何,每个分支存储什么信息?
  • 如何获取有关分支的元数据?就像创建分支时一样,分支的大小是多少。
  • 最佳答案

    所有git引用(分支,标签,注释,存储等)均使用相同的系统。这些是:

  • 引用本身,以及
  • “reflogs”

  • 引用日志基于引用名称存储在 .git/logs/refs/中,但有一个异常(exception): HEAD的引用日志存储在 .git/logs/HEAD中而不是 .git/logs/refs/HEAD中。

    引用是“松散的”或“打包的”。打包的refs在 .git/packed-refs中,它是(SHA-1,refname)对的平面文件,用于简单的ref,还有带注释标签的其他信息。 “宽松”的裁判在 .git/refs/name中。这些文件包含原始SHA-1(可能是最常见的)或文字字符串 ref:,后跟符号引用的另一个引用的名称(通常仅适用于 HEAD,但您可以创建其他引用)。符号引用没有打包(或者至少,我似乎无法做到这一点:-))。

    打包标签和“空闲”分支头(那些没有被主动更新的分支头)可以节省空间和时间。您可以使用 git pack-refs 执行此操作。但是, git gc会为您调用 git pack-refs,因此通常您不需要自己执行此操作。

    关于git - git分支和标签如何存储在磁盘中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666331/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com