# 查看暂存区存储的内容
$ git ls-files --stage
# --stage, 简写-s
# 索引表示正在跟踪的内容
# 切换分支时, 索引内容重置为这个分支指向的状态
# 显示工作目录与暂存区有什么不同的地方
$ git status
# 把改动加入暂存区, 会更新index 文件, 创建的blob object 会直接放进.git/objects 文件夹里面, 并不会先放入一个临时文件夹里.
# 切换分支时
# 先修改HEAD, 指向新切换的分支
# 再修改index 文件
mtime file wdir stage repo
1:20 a.txt 5d9 5d9 5d9
1:20 b.txt cf5 cf5 cf5
# mtime, 最后更新时间
# file, 文件名
# wdir, 工作目录的文件版本(说是文件版本, 基石就是sha-1 值)
# 工作目录中有变动后更新此处的值和mtime (具体更新时间应该是git status 时)
# stage, 暂存区的文件版本(至于sha-1 值为什么只存3位)
# git add 后就会生成新的blob object, 并修改此处的值
# repo, 仓库中的文件版本(有冲突时可以根据mtime 来确定唯一 吧)
# git commit 后修改此处的值
https://stackoverflow.com/questions/4084921/what-does-the-git-index-contain-exactly