link

First, if it isn’t yet clear, Git is fundamentally a content-addressable filesystem with a VCS user interface written on top of it.

“plumbing” commands 底层命令 ,“porcelain” commands 上层命令

At the core of Git is a simple key-value data store.

Git Objects

dir is .git/objects

  • Blob file
  • Tree dir

commit object save who saved the snapshots, when they were saved, or why were saved. commit information and one tree snapshot.