Understanding Git's Behaviour
summary
Git stores everything as hashed objects: blobs, trees, commits, with branches and tags as simple refs that just point to hashes (two hex digits spread objects across directories). Merges are commits with multiple parents; rebases replay commits and change hashes. Reflog records ref moves (default reflog 90 days), GC produces pack files (delta-compressed) and prunes old objects, and reset --hard can be undone by reflog. Core Git can be implemented in an afternoon; pack/transfer optimizations handle scale.
AI-written summary · about
chapters (25)
- 0:00Intro
- 0:55Reality of Git
- 6:06Tree Command
- 7:17Commit Command
- 8:17Version Control
- 9:15Commits
- 10:48Ref
- 11:17Branch
- 12:11Tags
- 14:54Reset
- 16:04RefLog
- 17:55Garbage Collection
- 19:15Pack Files
- 22:08Merge
- 23:22Fastforward merge
- 25:07Merge strategies
- 26:58Rebase
- 30:10Reset Hard
- 31:37Riff Log
- 32:29Hash Nail
- 32:41Rebasing
- 33:35RebaseExec
- 35:47bisect
- 40:30local independent
- 41:52release separately








