Skip to content

Home

Git EscapeRoom Labs

🔀 Git Escape Room

Learn Git from Zero to Hero through 50 Interactive Puzzle Rooms


Decryption Tip

If the content doesn’t appear after entering the password in the selected room, please refresh the page (F5 or Ctrl+R).


Usage

  • There are several ways to run the Git-EscapeRoom Labs.
  • Choose the method that works best for you.

Using Docker is the easiest way to get started locally with the labs:

# GitHub Container Registry
docker run -it --pull=always -p 3000:3000 ghcr.io/nirgeier/git-escaperoom

Prerequisites:

  • Docker and Docker Compose installed on your system
  • No additional setup required
  • The easiest way to get started with the labs
  • Learn in your browser without any local installation

🌐 Launch on Killercoda

Benefits:

  • No installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed

For those who prefer to run it directly on their machine:

# Clone the repository
git clone https://github.com/nirgeier/Git-EscapeRoom
# Change to the Labs directory
cd Git-EscapeRoom/Labs
# Start with the setup lab
cd assets
# Follow the instructions in the README of each lab
cat README.md

Prerequisites:

  • A Unix-like operating system (Linux, macOS, or Windows with WSL)
  • Basic command-line tools
  • Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
  • Click on the Open in Google Cloud Shell button below:

Open in Cloud Shell

  • The repository will automatically be cloned into a free Cloud instance.
  • Use CTRL + click to open it in a new window.
  • Follow the instructions in the README of each lab.

Benefits:

  • No local installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed
  • Free tier available

Intro

  • This tutorial teaches Git through puzzles designed as escape rooms.
  • Each room covers a different Git concept - from basic installation to plumbing commands and internals.
  • Every room folder includes a README that describes the room’s objectives, hints, rules, and how to verify the solution.
  • The Git Escape Room is a series of Git puzzles (Escape-rooms, similar to the real-life attractions).
  • The puzzles are designed to teach players Git skills & features from beginner to expert level.

Pre-Requirements

  • This tutorial will test your Git and Linux skills.
  • You should be familiar with the following topics:
  • Basic Linux commands and shell navigation
  • Basic knowledge of a text editor (vim, nano, etc.)
  • Basic knowledge of Docker (if you choose to run it with Docker)

# Room Summary
01 Install & Verify Git Check if Git is installed, explore its binary location and sub-commands
02 Git Configuration Configure Git identity, editor, and preferences with git config
03 Git Init Initialize a repository and explore the .git directory structure
04 The Three States of Git Understand Git’s three areas: Working Directory, Staging Area, and Repository
05 Git Add: Staging Deep Dive Master git add with patterns, patches, and interactive staging
06 Git Status & Restore Read git status output and use git restore to manage file states
07 Git Commit: Saving Snapshots Create commits, write good messages, and use git commit options
08 Git Log: Exploring History Navigate commit history with git log formats, filters, and search
09 Git Diff: Comparing Changes Compare changes with git diff between working dir, staging, and commits
10 Git Branch: Parallel Universes Create, switch, list, and manage branches with git branch and git switch
11 Git Merge: Bringing Branches Together Combine branches with git merge, fast-forward and three-way merges
12 Merge Conflicts Resolve merge conflicts by editing conflict markers and completing the merge
13 Git Rebase: Linear History Rewrite history with git rebase and interactive rebase for clean timelines
14 Git Stash: Emergency Shelf Save and restore work-in-progress with git stash
15 Git Remote: Connecting to the World Manage remote repositories with git remote - add, rename, remove
16 Git Clone: Copying Repositories Clone repositories with depth, branch, and bare options
17 Git Fetch: Download Without Merging Download remote changes without merging using git fetch
18 Git Pull: Fetch + Merge Fetch and integrate remote changes with git pull and pull strategies
19 Git Push: Sharing Your Work Share commits with git push, set upstream, and manage remote branches
20 Git Tag: Marking Milestones Mark releases and milestones with lightweight and annotated tags
21 Git Cherry-Pick: Selective Commits Pick specific commits from other branches and apply them
22 Git Reset: Rewinding History Rewind history with git reset - soft, mixed, and hard modes
23 Git Revert: Safe Undo Safely undo commits by creating a new reverting commit
24 Git Commit –Amend: Fixing Mistakes Fix the last commit - change message, add files, or update content
25 Git Blame: Line-by-Line Detective Track down who changed what and when - line-by-line attribution
26 Git Bisect: Bug Hunting Binary search through history to find the commit that introduced a bug
27 Git Reflog: Your Safety Net Recover lost commits, branches, and undone work from the reflog
28 Git Alias: Custom Shortcuts Create shortcuts for your most-used Git commands
29 Gitignore: Hiding Files from Git Keep unwanted files out of your repo with .gitignore patterns
30 Gitattributes: File-Level Rules Control line endings, diff behavior, and merge strategies
31 Git Hooks: Automation Triggers Automate workflows with scripts that run at key Git lifecycle points
32 Git Submodule: Repos Within Repos Embed external repositories inside your project as submodules
33 Git Worktree: Parallel Branches Work on multiple branches simultaneously without stashing
34 Git Sparse-Checkout: Partial Repos Clone only the parts of a repo you need
35 Git Assume-Unchanged: Hiding Local Edits Tell Git to ignore local changes to tracked files
36 Git Clean: Remove Untracked Files Remove untracked files and directories from your working tree
37 Git Archive: Export Without .git Export a snapshot of your repository without the .git directory
38 Git Bundle: Offline Transfer Transfer repositories offline using Git bundles
39 Git Format-Patch & Am: Email Patches Create and apply patches for email-based collaboration
40 Git Grep: Search Tracked Files Search through tracked files and commit history
41 Git Shortlog: Contributor Stats Summarize commit activity by contributor
42 Git Describe: Human-Readable Names Get human-readable names for commits based on nearby tags
43 Git Notes: Commit Metadata Attach extra metadata to commits without changing their hashes
44 Git Replace: Transparent Object Swap Transparently swap Git objects to rewrite history
45 Git Filter-Branch & Filter-Repo Rewrite entire repository history - the nuclear option
46 Git Rerere: Reuse Recorded Resolution Let Git remember and reuse conflict resolutions
47 Git Fsck: Filesystem Check Check the integrity of your Git repository
48 Git GC: Garbage Collection Optimize your repository by cleaning up and compressing objects
49 Git Plumbing Commands: Internals Peek under the hood with Git’s low-level plumbing commands
50 Git Object Model: The Four Objects Understand the four fundamental Git objects that power everything
99 The Final Exam The grand escape - prove your Git mastery!