首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git如何获取分支的数据?

Git如何获取分支的数据?
EN

Stack Overflow用户
提问于 2012-10-07 06:48:20
回答 1查看 115关注 0票数 2

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-07 06:55:54

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

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

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

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

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

为了帮助实现这一点,它使用了索引,这是文件状态到目录树中路径的映射,以及文件内容的散列和上次修改时间的记录。Git使用这些散列和mtime来快速识别哪些文件需要更新,并加载适当的内容。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12764558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档