Who Is Learn Git Branching For and What Git Skills Can You Practice There?

Updated

Learn Git Branching (learngitbranching.js.org) is an interactive, browser-based Git visualization tool for anyone who wants to understand how branches, commits, and history manipulation actually work. It suits complete beginners who need a visual, hands-on introduction to branching, and it also gives intermediate users structured practice with rebasing, merging, and moving commits around. The site runs a simulated Git repository in your browser and requires JavaScript to load.

Who it fits

  • Git beginners who have used commit and push but get confused about what a branch really is, where HEAD points, or why a merge creates a new commit.
  • Intermediate users who understand the basics but want to build confidence with rebase, cherry-pick, resetting, and rearranging history.
  • Visual learners who benefit from seeing the commit graph update after every command instead of reading about it.

It is not a general Git course. It does not cover installation, configuring remotes, hosting workflows (GitHub/GitLab), pull request etiquette, or day-to-day team conventions. If you need those, treat this as a supplement, not a replacement.

What you can practice

The lessons are organized as interactive levels, each with a goal and a simulated terminal. You type real Git commands, and the visualization shows the resulting commit graph.

Skill area What you practice
Branching basics Creating branches, switching with checkout/switch, understanding HEAD
Merging Fast-forward vs. non-fast-forward merges, merge commits
Rebasing Moving and replaying commits, keeping history linear
History manipulation cherry-pick, resetting, reverting, relative refs like HEAD~1
Navigating commits Referring to commits by hash, parent, and relative position
Remote concepts Fetching, pulling, pushing, and tracking branches (in later levels)

How a level works

  1. Read the goal — each level states what the commit graph should look like when you finish.
  2. Type commands in the simulated terminal, for example git branch new-feature or git rebase main.
  3. Watch the graph update — the visualization redraws commits and branch labels after each command.
  4. Verify — the level confirms success when the graph matches the target, or lets you retry.

Because it's a sandbox, mistakes are free: you can reset a level and try a different approach without touching a real repository.

Practical notes

  • The app simulates a repository in your browser, so nothing you do affects any real project.
  • If the page shows "Loading..." and stays blank, JavaScript is likely disabled — enable it and refresh.
  • The interface includes a terminal view and a commit-graph view side by side, which is the core of the learning experience.

How to get the most out of it

  • Do the levels in order; later ones assume you're comfortable with relative refs and rebasing.
  • After finishing a level, redo it using a different command sequence to see how the graph changes.
  • Pair it with a real throwaway repository so you can repeat the same commands outside the sandbox.

If your goal is to stop fearing branches and finally understand what rebase does to your history, this is a well-targeted place to practice. If you need setup, hosting, or team workflow guidance, look elsewhere.