feat: initial branching+merge+conflicts module merge

This commit is contained in:
Bjarke Sporring
2026-01-11 14:50:10 +01:00
parent 0a9f7c1842
commit a0a9a5a0d9
32 changed files with 1696 additions and 1727 deletions

View File

@@ -8,19 +8,17 @@ 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 (9 modules)
### 01 Essentials - Core Git Skills (7 modules)
Master fundamental Git concepts and collaborative workflows:
- **Module 01: Git Basics** - Initialize repositories, stage changes, make commits
- **Module 02: Viewing History** - Use git log and git diff to explore project history
- **Module 03: Branching Basics** - Create, switch, and manage branches
- **Module 04: Merging** - Combine branches and understand merge workflows
- **Module 05: Merge Conflicts** - Identify, understand, and resolve merge conflicts step-by-step
- **Module 06: Cherry-Pick** - Apply specific commits from one branch to another
- **Module 07: Reset vs Revert** - Understand when to rewrite history vs create new commits
- **Module 08: Stash** - Temporarily save work without committing
- **Module 09: Multiplayer Git** - **The Great Print Project** - Real cloud-based collaboration with teammates
- **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
### 02 Advanced - Professional Techniques (6 modules)
@@ -46,7 +44,7 @@ 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 09: Multiplayer Git
### For Module 07: Multiplayer Git
**This module is different!** It uses a real Git server for authentic collaboration:
@@ -138,9 +136,9 @@ You should see your name and email printed. This is required to make commits in
$PSVersionTable.PSVersion
```
### Python (for Module 09 only)
### Python (for Module 07 only)
Module 09 (Multiplayer Git) uses Python:
Module 07 (Multiplayer Git) uses Python:
- **Python 3.6+** required to run the Great Print Project
- Check: `python --version` or `python3 --version`
@@ -211,7 +209,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 09 uses an actual Git server for authentic teamwork
- **Real Collaboration**: Module 07 uses an actual Git server for authentic teamwork
- **Comprehensive Coverage**: From `git init` to advanced rebasing and bisecting
## Learning Path
@@ -220,19 +218,19 @@ The modules are designed to build on each other:
### Recommended Progression
**Phase 1: Core Fundamentals (Essentials 01-03)**
- Git Basics, History, Branching
- **Goal**: Understand commits and branches
**Phase 1: Core Fundamentals (Essentials 01-02)**
- Git Basics, History
- **Goal**: Understand commits and history
**Phase 2: Collaboration Basics (Essentials 04-05)**
- Merging, Merge Conflicts
- **Goal**: Work with multiple branches
**Phase 2: Collaboration Basics (Essentials 03)**
- Branching and Merging (checkpoint-based: branching, merging, conflicts)
- **Goal**: Work with multiple branches and resolve conflicts
**Phase 3: Workflow Tools (Essentials 06-08)**
**Phase 3: Workflow Tools (Essentials 04-06)**
- Cherry-Pick, Reset vs Revert, Stash
- **Goal**: Manage your work effectively
**Phase 4: Real Collaboration (Essentials 09)**
**Phase 4: Real Collaboration (Essentials 07)**
- **Multiplayer Git - The Great Print Project**
- **Goal**: Apply all skills with real teammates on a cloud server
- **Note**: This is a capstone module - bring everything together!
@@ -245,14 +243,14 @@ The modules are designed to build on each other:
### Alternative Paths
**Fast Track (1 day workshop):**
- Essentials 01-05 + Essentials 09 (Multiplayer)
- Essentials 01-03 + Essentials 07 (Multiplayer)
**Solo Learner:**
- Complete Essentials 01-08, skip 09 (requires partners and server)
- Complete Essentials 01-06, skip 07 (requires partners and server)
- Or complete all Advanced modules for deep mastery
**Team Workshop:**
- Essentials 01-05 then jump to 09 (Multiplayer) for collaborative practice
- Essentials 01-03 then jump to 07 (Multiplayer) for collaborative practice
## Tips for Success
@@ -263,7 +261,7 @@ The modules are designed to build on each other:
- **Use `git log --oneline --graph --all`** frequently to visualize repository state
- **If stuck**, check the Key Concepts section in the module's README
- **Consider installing glow** for better markdown reading experience
- **For Module 09**, work with a partner - collaboration is the point!
- **For Module 07**, work with a partner - collaboration is the point!
## Skills You'll Master
@@ -307,7 +305,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 09 (Multiplayer) requires you to set up a Git server - see facilitator guide below.
**Note**: Module 07 (Multiplayer) requires you to set up a Git server - see facilitator guide below.
### Facilitated Workshop
@@ -315,13 +313,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 09 (Multiplayer collaboration exercise)
3. **Workshop covers:** Essentials 01-05 + Module 07 (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 09 (see below)
- Set up Git server for Module 07 (see below)
- Ensure all participants have prerequisites installed (Git, PowerShell, Python)
- Prepare slides using the presentation outline
- Test all modules on a clean machine
@@ -329,9 +327,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 09: Multiplayer Git
### Setting Up Module 07: Multiplayer Git
Module 09 requires a Git server for authentic collaboration. You have two options:
Module 07 requires a Git server for authentic collaboration. You have two options:
**Option 1: Self-Hosted Gitea Server (Recommended)**
@@ -376,18 +374,16 @@ git-workshop/
├── GITEA-SETUP.md # Self-hosted Git server setup
├── install-glow.ps1 # Install glow markdown renderer
├── 01_essentials/ # Core Git skills (9 modules)
├── 01_essentials/ # Core Git skills (7 modules)
│ ├── 01-basics/ # Initialize, commit, status
│ ├── 02-history/ # Log, diff, show
│ ├── 03-branching/ # Create and switch branches
│ ├── 04-merging/ # Merge branches
│ ├── 05-merge-conflicts/ # Resolve conflicts step-by-step
│ ├── 06-cherry-pick/ # Apply specific commits
── 07-reset-vs-revert/ # Undo changes safely
├── 08-stash/ # Save work-in-progress
└── 09-multiplayer/ # Real collaboration (cloud-based)
│ ├── README.md # Student guide (1,408 lines)
│ └── FACILITATOR-SETUP.md # Server setup guide (904 lines)
│ ├── 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)
├── README.md # Student guide
└── FACILITATOR-SETUP.md # Server setup guide
└── 02_advanced/ # Professional techniques (6 modules)
├── 01-rebasing/ # Linear history with rebase
@@ -400,9 +396,9 @@ git-workshop/
## What's Unique About This Workshop
### The Great Print Project (Module 09)
### The Great Print Project (Module 07)
Unlike any other Git tutorial, Module 09 provides **real collaborative experience**:
Unlike any other Git tutorial, Module 07 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
@@ -429,7 +425,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 09 (Multiplayer) without a partner?**
**Q: Can I do Module 07 (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?**
@@ -445,16 +441,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 09, ask your partner or facilitator
5. For Module 07, 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 09 requires internet to access the Git server.
A: Modules 01-08 work completely offline. Module 07 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 09 uses Gitea but everything you learn applies to GitHub, GitLab, Bitbucket, etc.
A: The skills are identical across all Git platforms. Module 07 uses Gitea but everything you learn applies to GitHub, GitLab, Bitbucket, etc.
---