This model doesn't cover the staging area though.
- Untracked: Files that Git doesn't know about.
- Tracked: Files that Git knows about. Further divided into unstaged files (will not be part of the next commit) and staged files (will be part of the next commit).
What helped me here was to know that it's possible to track a (yet untracked) file without staging it:
git add --intent-to-add <path>I do think understanding that it's a graph is the first step to grokking git though. The other stuff makes more sense after that (at least in my experience).