这是一条有顺序的学习路径,三个交互演示依次回答三个问题:一个文件为什么能同时有三个状态,commit 在磁盘上长什么样,下一次提交的内容在哪里等待。按 1 到 3 的顺序走,每课五到十分钟。
看懂 HEAD、Index、Working Tree 为什么能同时保存同一个文件的三个版本,以及每条命令究竟改动了哪一层。
HEAD
Index
Working Tree
概念预览
上次提交记录的快照
app.txt
version=1
下一次提交将记录的内容
version=2
你正在编辑的文件
version=3
同一个 app.txt 此刻有三个版本:HEAD 是 version=1,Index 是 version=2,工作区是 version=3。
看懂一次查找如何沿 ref → commit → tree → blob 走到底,以及 blob 为什么只存内容、文件名记录在 tree 里。
想逐对象检查每个字段? 打开逐步详解版
refs/heads/main
a1b2c3
docs/
"hello\n"
文件名保存在 tree 的条目里;blob 内部只有内容,所以同一份内容可以被多个路径共享。
看懂如何只暂存一部分改动、如何安全地撤销暂存,以及冲突时 Index 里的三个 stage 各代表什么。
a.txt
b.txt
c.txt
git add a.txt b.txt→
git add 只复制你点名的文件:提交会记录 a.txt 和 b.txt,c.txt 留在工作区等下一份草稿。