StudyGit: Replaying Git History in VS Code
· 3 min read
StudyGit: Replaying Git History in VS Code
I built StudyGit, a VS Code extension that helps you understand code changes by watching them happen. Instead of staring at a static diff, you press play and the code re-types itself, commit by commit, character by character.
The idea came from how I actually learn from other people's repos: I want to see the order things were built in, not just the final state. A diff tells you what changed; it doesn't show you the story.
Why I made it
Reading a big commit as a wall of red and green is hard. Your eyes jump around, and you lose the sense of intent behind each change. I wanted something closer to watching someone code over your shoulder:
- see additions and deletions appear in sequence,
- feel the pace of how a file came together,
- and pause to think whenever something interesting shows up.
So StudyGit turns Git history into a playback you can scrub through, right inside the editor you already work in.
How it works
The extension takes a Git repository and replays its commits as an animation:
- Interactive commit playback, code changes unfold character by character, like a typing animation
- Visual highlighting, additions and deletions are shown with color-coded highlights so you can track what's being added versus removed
- Playback controls, a debug-style control interface with play, pause, skip, and stop
- Customizable speed, slow it down to study, or speed it up to skim
- "Take a break", pause between commits so the playback doesn't run away from you
- Auto cleanup, temporary files created during playback are cleaned up automatically
You start it from the Command Palette with "StudyGit: Start Commit Playback", pick a commit to start from, and watch the history roll forward. There are commands wired for showing the controls, toggling playback, skipping the current commit, and stopping the session.
What I learned
Building StudyGit taught me a few things about VS Code as a platform and about turning a vague idea into something usable:
- The editor is a great canvas. Decorations and highlights let me animate real code in place, rather than building a separate viewer.
- Controls matter more than the effect. The typing animation is the fun part, but play/pause/skip/speed is what makes it something you'd actually use to study code.
- Small friction kills tools. Auto cleanup and a familiar debug-style control bar were what made it feel finished instead of like a demo.
It's published on the VS Code Marketplace, so you can install it straight from the Extensions view, search for "StudyGit" and hit install.
If you want to look at the code, here it is: studygit on GitHub.