同一个文件的三个状态: HEAD / index / working tree

一个名为 app.txt 的文件,可以同时存在三个不同版本。走完下面五个状态,看清每条命令真正改动了哪一层。

导航 / Navigation

状态 1 / 5

键盘: 切换状态, Home 回到初始状态, End 跳到提交状态。

执行的命令

尚未执行命令,这是仓库刚提交完的起点。

三个状态 / Three states

HEAD

最新一次提交记录下来的快照

app.txt内容

version=1

Index

下一次提交会记录的内容

app.txt内容

version=1

Working Tree

你正在磁盘上编辑的文件

app.txt内容

version=1

git status --short

(没有输出)

第一位:索引与 HEAD 的差异
空格
第二位:工作区与索引的差异
空格

三个状态没有差异,所以这条命令什么都不输出。

M,第一位
出现在第一位:索引与 HEAD 不同,改动已经暂存。
M,第二位
出现在第二位:工作区与索引不同,改动还没有暂存。
空格
空格表示这一位对应的两层内容相同。

这一步发生了什么

仓库刚刚提交过,HEAD、索引、工作区保存的都是 version=1。三层内容一致时,git status --short 没有输出。