Git 提交历史与查找:深入解析与实践操作
1. 分支与合并基础
在 Git 中,提交之间的关系构成了复杂的历史网络。例如,提交 E 和 C 有共同的父提交 B,这意味着 B 是一个分支的起点。主分支(master)由提交 A、B、C 和 D 开始,而提交序列 A、B、E、F 和 G 则形成了名为 pr - 17 的分支,该分支指向提交 G。
当提交 H 出现时,它是一个合并提交,代表 pr - 17 分支被合并到了主分支。由于是合并操作,H 有多个父提交,这里是 D 和 G。合并完成后,主分支会更新指向新的提交 H,但 pr - 17 分支仍指向 G。
在实际操作中,中间提交的细节通常被认为不重要,并且提交指向其父提交的实现细节也常被省略,就像在简化的提交图中那样。这种提交图常用于讨论某些 Git 命令的操作以及它们如何修改提交历史。
2. 使用 gitk 查看提交图
图的作用是帮助我们可视化复杂的结构和关系。 gitk 命令可以随时绘制存储库的有向无环图(DAG)。以下是查看示例网站提交图的步骤:
$ cd public_html
$ gitk
要理解提交的 DAG,需要了解每个提交的父提交情况:
- 普通提交通常只有一个父提交,即历史中的前一个提交。当进行更改时,更改体现在新提交与其父提交的差异上。
- 通常只有一个提交没有父提交,即初始提交,它在图的底部。
- 合并提交(如图顶部的提交)有多个父提交。
当一个提交有多个子提交时,这里就是
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



