揭秘

Git 实际管理的是三棵树,这里树意为文件的集合。

  • HEAD ,下一次提交的父结点。
  • INDEX ,预期的下一次提交。
  • WORKING DIRECTORY ,工作目录。

reset-workflow

  • 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 可以帮助我们了解更多细节。