# 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: ```powershell .\install-glow.ps1 ``` After installation, read markdown files with: ```powershell # 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: ```powershell 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 ```powershell 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