Git Workshop

A hands-on, progressive git workshop with practical challenges ranging from basic to advanced concepts.

Workshop Structure

Each module is a self-contained challenge that teaches specific git concepts:

  • Module 01: Git Basics (init, add, commit, status)
  • Module 02: Viewing History (log, diff)
  • Module 03: Branching Basics
  • Module 04: Merging
  • Module 05: Merge Conflicts
  • Module 06: Rebasing
  • Module 07: Interactive Rebase
  • Module 08: Cherry-pick
  • Module 09: Reset vs Revert
  • Module 10: Stash
  • Module 11: Working with Remotes

How to Use This Workshop

  1. Navigate to a module directory (e.g., module-01-basics)
  2. Read the README.md to understand the challenge
  3. Run ./setup.ps1 to create the challenge environment
  4. Complete the challenge using git commands
  5. Run ./verify.ps1 to check if you've solved it correctly
  6. Move to the next module

Requirements

  • Git installed and configured
  • PowerShell (Windows PowerShell 5.1+ or PowerShell Core 7+)
  • Basic command line knowledge

Optional: Install Glow for Pretty Markdown

This workshop includes many markdown files with instructions. You can install glow to render them beautifully in your terminal:

.\install-glow.ps1

After installation, read markdown files with:

# Windows
.\bin\glow.exe README.md

# macOS/Linux
./bin/glow README.md

Pro tip: Use glow -p for pager mode on longer files!

Without glow, you can still read markdown files with any text editor or cat README.md.

Getting Started

Start with Module 01:

cd module-01-basics
.\setup.ps1

Follow the instructions in each module's README.md file.

For Workshop Facilitators

Before distributing this workshop to attendees:

  1. Delete the root .git directory: This prevents confusion and ensures attendees practice git from scratch
    Remove-Item -Path .git -Recurse -Force
    
  2. Each module's challenge/ directory will become its own independent git repository when attendees run setup.ps1
  3. This isolation ensures each module provides a clean learning environment
Description
Git workshop
Readme 201 KiB
Languages
PowerShell 100%