gpt4 book ai didi

git - git 如何在提交图中存储 "edges"?

转载 作者:行者123 更新时间:2023-12-05 04:14:46 25 4
gpt4 key购买 nike

我知道 git 中的所有分支都是一种指向提交的指针。当您git checkout 一个分支时,提交被提取并且 git 遍历图表一直回到 repo 的开头,以便将适当的内容放入工作目录。

我还了解到提交是三部分信息的组合:作者、时间戳和提交修改的所有文件的内容。

我的问题是:鉴于分支是指向提交的指针,提交如何引用其前身提交?这些指针是提交本身的一部分,还是其他数据结构的一部分?

最佳答案

一个提交实际上是至少一个集合:

  • 作者
  • 提交者
  • 日期
  • 评论
  • 树的 SHA1(目录内容)
  • 父级的 SHA1 提交。可以有 0 到 N 个 parent 。

(提交本身的 ID 实际上并未存储在其中,而是所有这些字段的哈希值 (SHA1)。)

如您所见,提交包含其父项的所有 ID,因此这就是 DAG 的边缘所在。

请注意,虽然一个提交通常有一个父项,但也可以有没有父项的提交(项目中的第一个提交),也可以有多个父项的提交( merge 提交)。

关于git - git 如何在提交图中存储 "edges"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246524/

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