Git 实际管理的是三棵树,这里树意为文件的集合。
- HEAD ,下一次提交的父结点。
- INDEX ,预期的下一次提交。
- WORKING DIRECTORY ,工作目录。
- git status
- 显示三棵树之间的差异。
- git add
- 将 WORKING DIRECTORY 中的内容填充到 INDEX 。
- git commit
- 将 INDEX 中的内容填充到 HEAD 。
- git checkout
- 将 HEAD 中的内容填充到 WORKING DIRECTORY 。
- git reset
--soft
仅更新 HEAD 。--mixed
清空当前所有暂存,更新 HEAD 和 INDEX 。默认选项。--hard
全更新。
Git 的底层命令 cat-file 和 ls-tree 可以帮助我们了解更多细节。