feat: split out reset from the revert. First the safe path then the advanced path

This commit is contained in:
Bjarke Sporring
2026-01-11 23:02:48 +01:00
parent 039debe744
commit 8d63b2d22e
20 changed files with 2618 additions and 607 deletions

View File

@@ -8,7 +8,7 @@ Perfect for developers who want to move beyond basic Git usage and master profes
The workshop is organized into two tracks:
### 01 Essentials - Core Git Skills (7 modules)
### 01 Essentials - Core Git Skills (8 modules)
Master fundamental Git concepts and collaborative workflows:
@@ -16,9 +16,10 @@ Master fundamental Git concepts and collaborative workflows:
- **Module 02: Viewing History** - Use git log and git diff to explore project history
- **Module 03: Branching and Merging** - Create branches, merge them, and resolve conflicts (checkpoint-based)
- **Module 04: Cherry-Pick** - Apply specific commits from one branch to another
- **Module 05: Reset vs Revert** - Understand when to rewrite history vs create new commits
- **Module 06: Stash** - Temporarily save work without committing
- **Module 07: Multiplayer Git** - **The Great Print Project** - Real cloud-based collaboration with teammates
- **Module 05: Git Revert** - Safe undoing - preserve history while reversing changes (includes merge commit reversion)
- **Module 06: Git Reset** - Dangerous history rewriting - local cleanup only (NEVER on pushed commits!)
- **Module 07: Stash** - Temporarily save work without committing
- **Module 08: Multiplayer Git** - **The Great Print Project** - Real cloud-based collaboration with teammates
### 02 Advanced - Professional Techniques (6 modules)
@@ -44,18 +45,18 @@ Advanced Git workflows for power users:
**Quick Reference**: See [GIT-CHEATSHEET.md](GIT-CHEATSHEET.md) for a comprehensive list of all Git commands covered in this workshop. Don't worry about memorizing everything - use this as a reference when you need to look up command syntax!
### For Module 07: Multiplayer Git
### For Module 08: Multiplayer Git
**This module is different!** It uses a real Git server for authentic collaboration:
1. Navigate to `01_essentials/09-multiplayer`
1. Navigate to `01_essentials/08-multiplayer`
2. Read the `README.md` for complete instructions
3. **No setup script** - you'll clone from https://git.frod.dk/multiplayer
4. Work with a partner on shared branches
5. Experience real merge conflicts and pull requests
6. **No verify script** - success is visual (your code appears in the final output)
**Facilitators**: See `01_essentials/09-multiplayer/FACILITATOR-SETUP.md` for server setup and workshop guidance.
**Facilitators**: See `01_essentials/08-multiplayer/FACILITATOR-SETUP.md` for server setup and workshop guidance.
## Running PowerShell Scripts
@@ -136,9 +137,9 @@ You should see your name and email printed. This is required to make commits in
$PSVersionTable.PSVersion
```
### Python (for Module 07 only)
### Python (for Module 08 only)
Module 07 (Multiplayer Git) uses Python:
Module 08 (Multiplayer Git) uses Python:
- **Python 3.6+** required to run the Great Print Project
- Check: `python --version` or `python3 --version`
@@ -209,7 +210,7 @@ Follow the instructions in each module's README.md file.
- **Progressive Difficulty**: Builds from basics to advanced Git techniques
- **Reset Anytime**: Each local module includes a reset script for a fresh start
- **Self-Paced**: Learn at your own speed with detailed README guides
- **Real Collaboration**: Module 07 uses an actual Git server for authentic teamwork
- **Real Collaboration**: Module 08 uses an actual Git server for authentic teamwork
- **Comprehensive Coverage**: From `git init` to advanced rebasing and bisecting
## Learning Path
@@ -305,7 +306,7 @@ Before distributing this workshop to attendees for self-study:
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
**Note**: Module 07 (Multiplayer) requires you to set up a Git server - see facilitator guide below.
**Note**: Module 08 (Multiplayer) requires you to set up a Git server - see facilitator guide below.
### Facilitated Workshop
@@ -313,13 +314,13 @@ For running this as a full-day instructor-led workshop:
1. **See [WORKSHOP-AGENDA.md](WORKSHOP-AGENDA.md)** - Complete agenda with timing, activities, and facilitation tips
2. **See [PRESENTATION-OUTLINE.md](PRESENTATION-OUTLINE.md)** - Slide deck outline for presentations
3. **Workshop covers:** Essentials 01-05 + Module 07 (Multiplayer collaboration exercise)
3. **Workshop covers:** Essentials 01-05 + Module 08 (Multiplayer collaboration exercise)
4. **Duration:** 6-7 hours including breaks
5. **Format:** Mix of presentation, live demos, and hands-on challenges
**Facilitator preparation:**
- Review the workshop agenda thoroughly
- Set up Git server for Module 07 (see below)
- Set up Git server for Module 08 (see below)
- Ensure all participants have prerequisites installed (Git, PowerShell, Python)
- Prepare slides using the presentation outline
- Test all modules on a clean machine
@@ -327,9 +328,9 @@ For running this as a full-day instructor-led workshop:
The workshop format combines instructor-led sessions with self-paced hands-on modules for an engaging learning experience.
### Setting Up Module 07: Multiplayer Git
### Setting Up Module 08: Multiplayer Git
Module 07 requires a Git server for authentic collaboration. You have two options:
Module 08 requires a Git server for authentic collaboration. You have two options:
**Option 1: Self-Hosted Gitea Server (Recommended)**
@@ -344,7 +345,7 @@ Run your own Git server with Gitea using Docker and Cloudflare Tunnel:
**Setup:**
1. See [GITEA-SETUP.md](GITEA-SETUP.md) for complete Gitea + Docker + Cloudflare Tunnel instructions
2. See `01_essentials/09-multiplayer/FACILITATOR-SETUP.md` for detailed workshop preparation:
2. See `01_essentials/08-multiplayer/FACILITATOR-SETUP.md` for detailed workshop preparation:
- Creating student accounts
- Setting up The Great Print Project repository
- Pairing students
@@ -374,14 +375,15 @@ git-workshop/
├── GITEA-SETUP.md # Self-hosted Git server setup
├── install-glow.ps1 # Install glow markdown renderer
├── 01_essentials/ # Core Git skills (7 modules)
├── 01_essentials/ # Core Git skills (8 modules)
│ ├── 01-basics/ # Initialize, commit, status
│ ├── 02-history/ # Log, diff, show
│ ├── 03-branching-and-merging/ # Branches, merging, conflicts (checkpoint-based)
│ ├── 04-cherry-pick/ # Apply specific commits
│ ├── 05-reset-vs-revert/ # Undo changes safely
│ ├── 06-stash/ # Save work-in-progress
── 07-multiplayer/ # Real collaboration (cloud-based)
│ ├── 05-revert/ # Safe undoing (includes merge commits)
│ ├── 06-reset/ # Dangerous local cleanup
── 07-stash/ # Save work-in-progress
│ └── 08-multiplayer/ # Real collaboration (cloud-based)
│ ├── README.md # Student guide
│ └── FACILITATOR-SETUP.md # Server setup guide
@@ -398,7 +400,7 @@ git-workshop/
### The Great Print Project (Module 07)
Unlike any other Git tutorial, Module 07 provides **real collaborative experience**:
Unlike any other Git tutorial, Module 08 provides **real collaborative experience**:
- **Real Git server**: Not simulated - actual cloud repository at https://git.frod.dk/multiplayer
- **Real teammates**: Work in pairs on shared branches
@@ -425,7 +427,7 @@ This is how professional developers actually work - no simulation, no shortcuts.
**Q: Do I need to complete all modules?**
A: No! Essentials 01-05 covers what most developers use daily. Complete 06-09 and Advanced modules to deepen your skills.
**Q: Can I do Module 07 (Multiplayer) without a partner?**
**Q: Can I do Module 08 (Multiplayer) without a partner?**
A: Not recommended - collaboration is the point. If solo, skip to Advanced modules or wait until you can pair with someone.
**Q: How long does the workshop take?**
@@ -441,16 +443,16 @@ A:
2. Check [GIT-CHEATSHEET.md](GIT-CHEATSHEET.md)
3. Run `./reset.ps1` to start fresh
4. Use `git status` and `git log --graph` to understand current state
5. For Module 07, ask your partner or facilitator
5. For Module 08, ask your partner or facilitator
**Q: Can I use this for a team workshop at my company?**
A: Absolutely! See the "For Workshop Facilitators" section above. The materials are designed for both self-study and instructor-led workshops.
**Q: Do I need internet access?**
A: Modules 01-08 work completely offline. Module 07 requires internet to access the Git server.
A: Modules 01-07 work completely offline. Module 08 requires internet to access the Git server.
**Q: What if I prefer GitHub/GitLab instead of Gitea?**
A: The skills are identical across all Git platforms. Module 07 uses Gitea but everything you learn applies to GitHub, GitLab, Bitbucket, etc.
A: The skills are identical across all Git platforms. Module 08 uses Gitea but everything you learn applies to GitHub, GitLab, Bitbucket, etc.
---