One thing that has really helped me understand git better is DAG (https://en.wikipedia.org/wiki/Directed_acyclic_graph). Whenever I do `git add <file/folder>`, it is somewhat easier to imagine how new blobs are created and how they are linked.
For beginners it is a fun exercise to understand why empty folders can't be added to git.
For beginners it is a fun exercise to understand why empty folders can't be added to git.