gpt4 book ai didi

git - Git如何获取分支的数据?

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

我想知道 Git 将所有分支数据保存在哪里。每次切换分支时,所有数据都会放回原处,而来自另一个特定分支的数据只会被删除。

在较慢的 CPU/HDD 上从另一个分支取回数据是否需要更长的时间?内部是如何工作的?

最佳答案

Git 将文件数据存储在称为“blob”的对象中。这些存储在存储库中的 .git/objects 目录中。

blob 到目录结构的映射是由称为“树”的对象完成的,这些对象是递归的 - 在子目录的情况下,一棵树可以引用其他树。

提交反过来引用一个特定的树,它是提交时存储库根目录的状态。

分支只是指向特定提交的指针。

当您 check out 一个分支时,Git 会去查找它指向的提交。从那里,它加载提交引用的树,并从中获取应该与树中每个位置匹配的精确 blob。然后它将这些 blob 的内容加载到正确的文件路径中。

为此,它使用索引,它是文件状态到目录树中路径的映射,以及它们的内容的哈希值和它们最后修改时间的记录。 Git 使用这些哈希值和 mtimes 来快速识别哪些文件需要更新,并加载正确的内容。


在速度较慢的 CPU+HDD 上,任何类型的工作都会花费更长的时间,因为它不受时间的限制。它将尽可能多地使用 CPU/磁盘速度。也就是说,Git 相当高效,因此除非您有大量文件或非常大的文件内容更改(或非常慢的设备),否则它通常会运行得非常快。

关于git - Git如何获取分支的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764558/

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