请教一个 git 问题, 最近看 git book 文档中有图片如下

2024-05-23 09:38:37 +08:00
 skyrim61
https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

请教下

按直觉, c0 是一切的源头, 箭头流向应该是 c0->c1->c2 才是

为什么箭头是 c2->c1->c0 ?

另外. v2 怎么贴图片?
2224 次点击
所在节点    git
13 条回复
newaccount
2024-05-23 09:48:06 +08:00
你画类图的时候箭头是从子类指向父类,这里一样
lrh3321
2024-05-23 10:02:12 +08:00
把每个分支当成不同的链表,最新的提交指向它的上一个提交,然后一直到头。
callv
2024-05-23 10:06:54 +08:00
我也有这样的疑问,不过知道后反着理解就好了
skyrim61
2024-05-23 10:49:09 +08:00
箭头的指向可不是随意决定的, 不知道是画图的作者是基于什么考虑的? 比如指向父提交? 或者其它
yolee599
2024-05-23 12:35:29 +08:00
我先提一个问题:一个父亲能有多个孩子,但是一个孩子只会有一个父亲。请设计一个数据库描述他们的关系。

请问你怎么设计?
yanghanlin
2024-05-23 12:57:56 +08:00
@yolee599 一个 Git commit 可以有多个 parent 的,如 merge commit
IvanLi127
2024-05-23 13:00:49 +08:00
因为那个箭头的源头是 commit 自己的,commit 自己是记录着上一个 commit 是谁,所以指向父级。大概是按数据结构画的,类似链表。
具体这个箭头啥意思,除非作者写清楚这箭头是啥,不然就只能这么推断了,应该没啥标准。
skyrim61
2024-05-23 13:16:03 +08:00
是的, 一个 Git commit 可以有多个 parent 的.
wanqingfengtao
2024-05-23 13:36:46 +08:00
@skyrim61 你可以再看一下 3.1 ,除了根结点,每次提交产生的提交对象会有一个(或多个)指针指向上次提交对象
所以箭头(指针)是从子节点指向父节点
FYFX
2024-05-23 13:42:21 +08:00
leonshaw
2024-05-23 13:43:50 +08:00
cybernty
2024-05-23 13:58:40 +08:00
cybernty
2024-05-23 14:00:00 +08:00
git 核心原理很简洁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043156

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX