这是我理解Git的第二篇文章,在阅读这篇文章之前请先参考第一篇Git的理解-数据模型。
让我们从上次离开的地方开始–git的数据模型。只是这一次我们将简化一下,只显示提交对象,并给它们一些符号化的名字,而不是校验和(只是为了更容易遵循),所以我们得到的图是这样的。
熟悉图形理论的人会注意到,这是一个有向无环图形(DAG)。这意味着,图中节点之间的连接边(在git的情况下,就是commits)是有方向的,如果你从一个节点开始,沿着图中的边的方向行驶,那么你永远不可能到达你开始时的同一个节点(没有 “往返”)。
在我们的示例图中,我们可以将三个分支分别标记为红色(包含提交A,B,C,D,E)和绿色(包含提交A,B,F,G)。我们将它们标记为红色(包含提交A,B,C,D,E),蓝色(包含提