The model beneath the commands.
WHAT GIT STORES
Snapshots of the entire project at each commit, not differences.
WHAT A COMMIT IS
A snapshot, with a message, an author, a timestamp, and a reference to its parent.
WHAT THAT PRODUCES
A chain of commits, forming the history.
WHAT A BRANCH IS
A movable pointer to a commit.
WHY THAT MATTERS
Branches are cheap, because creating one creates a pointer, not a copy.
WHAT THE THREE AREAS ARE
- The working directory: your files
- The staging area: changes prepared for the next commit
- The repository: committed history
WHY THE STAGING AREA EXISTS
So you can commit some changes and not others, producing focused commits.
WHAT DISTRIBUTED MEANS
Every clone contains the full history.
WHAT THAT ENABLES
Working without a network, and no single point of failure for history.
WHAT A REMOTE IS
Another copy of the repository, usually shared.
WHAT UNDERSTANDING THIS PREVENTS
Most confusion, which comes from not knowing which area a command affects.