Let’s get together for a chat about some basic Git internals stuff. This won’t cover anything that’s not easily discoverable by poking around in the .git folder. One thing we’ll see is that the Object Database is organized into a DAG which is a strict superset of the standard DAG of commits. Also that DAG shows how Git saves file storage space without resorting to any hard links. It turns out that the object database structure is trivial to understand. Here’s a bit of foreshadowing of the things we’ll discuss -
I’ll also make some bold statements about what I see as git misinformation. The index is not the staging area. There are no hard links in the repository. Git has no (named) branches a la http://www.bradapp.com/acme/branching/. A squash merge is not a merge. I’m sure I’ll think of more things. I do expect disagreement.
My ultimate goal is to be able to read through a couple of Git man pages and actually understand them. HA!! I’m also hoping I can be proven wrong about a bunch of stuff. That’s the only way to learn.
Thanks once again to our generous host, Sports Basement.