feat: split out reset from the revert. First the safe path then the advanced path
This commit is contained in:
52
README.md
52
README.md
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user