底层命令 Pro Git · 10.1 / 附录 A3.12
上层命令(porcelain)的积木。日常很少直接用,但排查问题、写脚本、理解原理时非常关键。
| 命令 | 说明 |
|---|---|
git rev-parse HEAD | 把任意引用 / 表达式(HEAD~3、分支名)解析成散列 |
git rev-parse --show-toplevel | 输出当前仓库根目录的绝对路径 |
git rev-list --count main | 按反向时间列出提交并可计数(CI 版本号常用) |
git merge-base main feature | 求两分支的最近公共祖先(三方合并的基础) |
git ls-files | 列出索引(暂存区)中的全部文件 |
git ls-tree HEAD <目录> | 查看某次提交里的目录树结构 |
git cat-file -p HEAD^{tree} | 漂亮打印对象内容(-t 查类型,提交 / 树 / blob) |
git hash-object <文件> | 计算文件的 Git 对象键(-w 一并写入对象库) |
git symbolic-ref HEAD | 读 / 写符号引用,查看 HEAD 当前指向哪个分支 |
git update-ref refs/heads/main <散列> | 直接更新某个引用的值(分支指针的底层操作) |
git for-each-ref --format='%(refname:short)' | 可格式化地遍历所有引用(分支 / 标签清单) |
读懂 Git:用
git cat-file -p HEAD 打开一次提交,看它指向的 tree,再逐层展开——第 10 章讲的内部模型立刻具象化。