The second edition of Pro Git, a free, open-source book teaching Git from basics to internals, written in AsciiDoc.
pcottle/learnGitBranching
An interactive, browser-based git visualizer and tutorial that shows how commands change the commit tree as you type them.
- Stars
- 34,187
- Forks
- 6,033
- Open issues
- 54
- Last commit
- yesterday
What is it?
LearnGitBranching is a git repository visualizer, sandbox, and set of tutorials and challenges. It draws the commit tree and updates it as each command runs, so you can see what branch, merge, rebase, or reset actually does to the history, which is hard to picture when working only in a terminal.
The app opens in a sandbox mode with a ready-made repository where you can experiment freely, with commands such as undo and reset to recover. Its levels are organized into tabs covering concepts like local versus remote repositories, and each level records how many commands you used, with a "git golf" challenge to beat the fewest.
The application is a purely client-side JavaScript app built with Vite, with no backend or database, and can also be run locally, built for production, or started through Docker.
Key features
- 01Visualizes the commit tree and updates it live as each git command executes.
- 02Includes a sandbox mode with undo and reset for free experimentation.
- 03Provides tiered levels covering local and remote repository concepts.
- 04Tracks command counts per level with a "git golf" challenge.
- 05Lets users build custom levels and share them via JSON or gist links.
- 06Runs entirely in the browser with no backend.
Use cases
- Learning git branching, merging, and rebasing for the first time.
- Practicing for intermediate git skills through graded challenges.
- Demonstrating how a git command changes history to a teammate.
- Creating custom git exercises for a workshop or course.
Quick start
- 1
Open the app in your browser without installing anything
- 2
Or run the most recent stable image with Docker
docker run -p 8080:80 ghcr.io/pcottle/learngitbranching - 3
Then visit http://localhost:8080/ in your browser
In collections
Topics
FAQ
- What is learnGitBranching?
- An interactive, browser-based git visualizer and tutorial that shows how commands change the commit tree as you type them. LearnGitBranching is a git repository visualizer, sandbox, and set of tutorials and challenges. It draws the commit tree and updates it as each command runs, so you can see what branch, merge, rebase, or reset actually does to the history, which is hard to picture when working only in a terminal.
- Is learnGitBranching free to use? What license does it have?
- learnGitBranching is open source under the MIT license. Check the license terms before using it in commercial products.
- Is learnGitBranching still maintained?
- Actively maintained. The last commit to learnGitBranching was on Nov 5, 2026.
- What can I use learnGitBranching for?
- Learning git branching, merging, and rebasing for the first time. Practicing for intermediate git skills through graded challenges. Demonstrating how a git command changes history to a teammate. Creating custom git exercises for a workshop or course.
- How do I install learnGitBranching?
- Open the app in your browser without installing anything Or run the most recent stable image with Docker: docker run -p 8080:80 ghcr.io/pcottle/learngitbranching Then visit http://localhost:8080/ in your browser
- Where can I get learnGitBranching?
- The source code and installation instructions are on GitHub: https://github.com/pcottle/learnGitBranching
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A collection of short, self-contained JavaScript articles and code snippets for learning everyday programming patterns in 30 seconds or less.
A Claude Code skill that builds an interactive, offline 3D simulator of any machine you can take apart, as a single HTML page.
An interactive, cyberpunk-styled periodic table of all 118 elements with 3D orbital models, heatmaps and bilingual UI, built with TypeScript and Vite.
A collection of .gitignore templates for programming languages, frameworks, editors and operating systems, used by GitHub's repository creation pages.
A simple terminal UI for git commands that makes staging, committing, rebasing and branch work faster from the keyboard.