Overview
Learn Git Branching includes a comprehensive set of levels (tutorial challenges) designed to teach Git concepts through hands-on practice. Each level presents a specific goal that you must achieve using Git commands.Viewing Available Levels
To see all available levels and your progress, use thelevels command:
- All level sequences organized by topic
- Which levels you’ve completed (marked with checkmarks)
- Your Git Golf score for each level
- Brief descriptions of each sequence
Level Sequences
Levels are organized into sequences that teach different aspects of Git. Each sequence focuses on a specific topic and builds progressively in difficulty.Main Tab Sequences
Introduction Sequence
A nicely paced introduction to the majority of git commands Levels:- Introduction to Git Commits
- Branching in Git
- Merging in Git
- Rebase Introduction
Ramping Up
The next serving of 100% git awesomeness Levels:- Detach yo’ HEAD
- Relative Refs (^)
- Relative Refs #2 (~)
- Reversing Changes in Git
Moving Work Around
“Git” comfortable with modifying the source tree Levels:- Cherry-pick Intro
- Interactive Rebase Intro
A Mixed Bag
A mixed bag of Git techniques, tricks, and tips Levels:- Grabbing Just 1 Commit
- Juggling Commits
- Juggling Commits #2
- Git Tags
- Git Describe
Advanced Topics
For the truly brave! Levels:- Rebasing Multiple Branches
- Multiple Parents
- Branch Spaghetti
Remote Tab Sequences
Push & Pull — Git Remotes!
Time to share your 1’s and 0’s kids; coding just got social Levels:- Clone Intro
- Remote Branches
- Git Fetch
- Git Pull
- Faking Teamwork
- Git Push
- Diverged History
- Locked Main
The Remote tab focuses on collaborative Git workflows using remote repositories. Make sure you understand local Git operations before diving into remotes.
To Origin And Beyond — Advanced Git Remotes!
And you thought being a benevolent dictator would be fun… Levels:- Push Main!
- Merging with Remotes
- Remote Tracking
- Git push Arguments
- Git push Arguments — Expanded!
- Fetch Arguments
- Source of Nothing
- Pull Arguments
Starting a Level
To start a specific level, use thelevel command:
Level Interface
When you’re in a level, you’ll see:- Level Name - Displayed in the toolbar at the top
- Goal Visualization - Shows what the final repository should look like
- Main Visualization - Your current repository state
- Command Input - Where you enter Git commands
Level-Specific Commands
While solving a level, you have access to special commands:Show Goal
View the goal state you need to achieve:Hide Goal
Close the goal visualization window:Show Solution
View the official solution for the level:--force to skip the confirmation:
Objective
View the level’s objective dialog (the instructions that appeared when you started):Hint
Get a hint for the current level:Completing a Level
When you successfully achieve the goal state:- An animation celebrates your success
- A results dialog shows:
- How many commands you used
- The optimal solution command count
- Whether you achieved the Git Golf best score
- You’re asked if you want to proceed to the next level
Exiting a Level
Return to sandbox mode at any time:Using URL Parameters
You can link directly to a specific level using URL parameters:- Bookmarking specific levels
- Sharing level links with others
- Returning to a level you were working on
Resetting a Level
If you want to start a level over:Resetting a level does NOT undo your “solved” status. If you already completed the level, it will still show as solved.
Progress Tracking
Your progress is automatically saved in your browser’s local storage:- ✓ Completed levels are marked with checkmarks
- ⭐ Best scores are tracked for Git Golf
- 📊 Overall progress is shown in the levels dialog
Resetting Progress
If you want to clear all your solved levels:Tips for Success
Level Navigation
Levels are designed to be completed in sequence, but you can:- Skip ahead to any level using
level <name> - Return to previous levels to replay them
- Jump between different sequences
- Work on levels from multiple sequences simultaneously
Next Steps
- Challenge yourself with Git Golf to optimize your solutions
- Learn how to build custom levels
- Practice in sandbox mode before attempting difficult levels
- Share level solutions using permalinks