想知道如何在 git 中浏览所有提交(或所有来自单个分支)的列表。这是怎么git log
做到的(指向部分代码的指针也很酷,我只是不知道从哪里开始)?我可以在原始文件系统上以某种方式做到这一点吗?
推理是:需要用不需要调用系统命令的其他语言编写工具。
更新:我已经阅读了Git 内部:Git 对象(以及后续章节),我知道还有包文件。我的主要问题是了解我们运行时发生了什么:git rev-list --all
. 或者 - 对于单个分支 - 没有--all
标志的相同命令。git 是否计算出头部,从它的对象存储中拉出它,检查父母的 shas,从对象存储中拉出那些等等?还是有其他更快的方法?