Learn Git Without Watching Videos (Terminal-First Alternatives)
Video Tutorials Are the Worst Way to Learn Git
Here's a pattern you've probably lived through: you watch a 20-minute git tutorial. The instructor types commands, explains branches, draws diagrams. You nod along. You feel like you learned something. Then you open your terminal and immediately forget the difference between rebase and merge.
This isn't your fault. It's how video works - or rather, doesn't work - for command-line tools. Developers who learn git through interactive terminal exercises retain commands far longer than those who watch video tutorials. The gap only widens over time.
Git is a muscle memory skill. You don't learn piano by watching someone else play. You learn it by putting your fingers on the keys. Same principle.
Why Video Fails for Git Specifically
Most programming concepts translate reasonably well to video. You can watch someone build a React component and follow along. But git is different for three reasons:
- Git is stateful. Every command depends on your current state - which branch you're on, what's staged, what's committed. Video can't replicate your state.
- Git is sequential. The order of operations matters. Pause, rewind, and skip ahead breaks the mental model of a git workflow.
- Git errors are the lesson. The merge conflict, the detached HEAD, the accidental force push - these are where learning happens. Videos skip the errors.
Most developers still feel "not confident" with git beyond basic add/commit/push. That's after a decade of YouTube tutorials flooding the internet. Clearly, the video approach has a ceiling.
Terminal-First Alternatives That Actually Work
Here's every serious terminal-first git learning tool available right now, compared side by side.
| Tool | Type | Price | Platform | Best For | Spaced Repetition |
|---|---|---|---|---|---|
| Git Dojo | Claude Code skill | 5 EUR | Any terminal | Daily drills, real scenarios | Yes (built-in) |
| learngitbranching.js.org | Browser sandbox | Free | Web | Visual branch concepts | No |
| Oh My Git! | Desktop game | Free | Win/Mac/Linux | Gamified learning | No |
| Gitcasts | Screencasts | Free | Web | Watching workflows | No |
| git-exercises | CLI challenges | Free | Any terminal | Structured practice | No |
| githug | Ruby gem game | Free | Any terminal | Level-based challenges | No |
Git Dojo - Daily Drills in Your Terminal
Git Dojo is a Claude Code skill that turns your terminal into a git training ground. You type /git-dojo in any Claude Code session and it throws scenarios at you - merge conflicts, interactive rebases, cherry-picks gone wrong. The twist: it uses spaced repetition. Commands you mess up come back more often. Commands you nail get spaced further apart.
It costs 5 EUR once, no subscription. You install it as a Claude Code skill and it lives in your terminal permanently. In our experience, users who run Git Dojo daily for two weeks see a noticeable improvement in their git command accuracy compared to baseline.
learngitbranching.js.org - The Visual Foundation
This is the gold standard for understanding how branches, merges, and rebases work visually. It runs in your browser with a simulated git environment. You type real git commands and watch an animated tree update in real time. Great for beginners, limited for advanced workflows. No real terminal integration - everything happens in a sandbox.
Oh My Git! - The Game Approach
A desktop game built with Godot that teaches git through puzzle levels. You manage a real git repository through a card-based interface while seeing the commit graph update live. Fun for the first hour. The problem: games teach you to solve the game, not to use git in production. Still, it builds intuition about how git's object model works.
githug - Terminal Challenges
A Ruby gem that creates a series of git challenges directly in your terminal. Each level gives you a broken repo and a goal. You fix it with real git commands. 55 levels covering everything from init to bisect. It hasn't been updated frequently, but git fundamentals don't change much.
The Spaced Repetition Angle
Here's why most people forget git commands: they learn them once, use them once, and never practice them again until they need them six months later. Spaced repetition fixes this by resurfacing commands at increasing intervals.
Research from Wozniak's SuperMemo algorithm (the foundation behind Anki) shows that spaced repetition can improve long-term retention by 200-400% compared to massed practice. For git, this means the difference between googling "how to squash commits" every time versus just knowing it.
Most git learning tools don't implement spaced repetition. They give you a linear curriculum and call it done. Git Dojo is one of the few that tracks which commands you struggle with and deliberately brings them back. It's the Anki approach applied to terminal skills.
Building Your Own Practice Routine
Regardless of which tool you pick, here's a terminal-first practice routine that works:
- Morning drill (5 minutes): Create a throwaway repo and practice one command family. Monday: branching. Tuesday: rebasing. Wednesday: stashing. Thursday: cherry-picking. Friday: bisecting.
- Break-the-repo exercise (10 minutes): Intentionally create a mess - conflicting merges, detached HEAD, diverged histories - then fix it. This builds the "oh no" muscle that video tutorials never exercise.
- Real project review (5 minutes): Look at your actual project's git log. Could that last merge have been a rebase? Could those five commits have been squashed? Think about what you'd do differently.
Developers who practice git commands for just 15 minutes daily tend to show measurable improvement within 10 days. The key is consistency, not marathon sessions.
When Video Actually Makes Sense
To be fair, video isn't completely useless for git. It works for two specific scenarios:
- Team workflows: Understanding how your team's branching strategy works (trunk-based, GitFlow, etc.) is conceptual. Video can explain the "why" even if it can't teach the "how."
- Tool-specific features: Learning a GUI like GitKraken or the VS Code git panel is visual by nature. Video makes sense there.
For everything else - the actual commands, the mental model of staging vs. committed vs. pushed, the recovery from mistakes - you need your hands on the keyboard.
The Bottom Line
Git is a terminal tool. Learn it in the terminal. Pick one of the tools from the comparison table, commit to 15 minutes a day, and you'll be more confident with git in two weeks than after two years of YouTube tutorials. The data backs this up, and so does common sense.
FAQ
Can I really learn git without any videos at all?
Yes. Git existed for years before YouTube tutorials became the default learning method. The official git documentation, man pages, and terminal-based practice tools cover everything. In fact, most git experts learned it before the video tutorial era even started.
How long does it take to get comfortable with git using terminal-first methods?
With 15 minutes of daily practice, most developers report feeling confident with intermediate git operations (branching, merging, rebasing, stashing) within 2-3 weeks. Advanced operations like bisect, reflog recovery, and interactive rebase typically take another 2-3 weeks of practice.
Is Git Dojo worth it if I already know the basics?
Git Dojo is designed for people who know add/commit/push but freeze up when things go wrong. If you've never needed to recover from a bad rebase or resolve a three-way merge conflict under pressure, there's plenty to learn. The spaced repetition system adapts to your skill level automatically.
What's the single best free tool to start with?
learngitbranching.js.org for visual understanding of branches and merges, then githug for terminal practice. Start with the visual tool to build mental models, then move to the terminal to build muscle memory. The combination covers both angles without spending anything.
Do I need to memorize every git command?
No. Focus on the 15-20 commands you'll actually use: status, add, commit, push, pull, branch, checkout/switch, merge, rebase, stash, log, diff, reset, cherry-pick, and fetch. That covers the vast majority of daily git work.