chore: initial training material setup

This commit is contained in:
2026-05-12 20:34:39 +02:00
commit 2314a14916
20 changed files with 1865 additions and 0 deletions
+139
View File
@@ -0,0 +1,139 @@
# 🌐 Modul 05 Remote & Pull Requests
Bisher hast du nur lokal gearbeitet. In diesem Modul verbindest du dein Repo mit einem Server und lernst, wie Teams zusammenarbeiten.
---
## Lokales vs. Remote-Repository
Ein **lokales Repository** liegt auf deinem Rechner. Ein **Remote-Repository** liegt auf einem Server (z. B. GitHub oder GitLab) und ist für alle Teammitglieder erreichbar.
```mermaid
flowchart LR
LOCAL[Lokales Repo\n💻 dein Rechner] -->|git push| REMOTE[origin\n☁️ GitHub / GitLab]
REMOTE -->|git pull| LOCAL
REMOTE -->|git fetch| LOCAL
COLLEAGUE[Kollegen-Repo\n💻 anderer Rechner] -->|git push| REMOTE
REMOTE -->|git pull| COLLEAGUE
```
---
## Remote-Verbindung einrichten
### Schritt 1: Remote-Repo anlegen
Erstelle auf [GitHub](https://github.com) oder [GitLab](https://gitlab.com) ein **leeres** Repository (ohne README, ohne .gitignore).
### Schritt 2: Remote-URL verknüpfen
```bash
git remote add origin https://github.com/deinname/mein-repo.git
```
### Schritt 3: Remote-Verbindung prüfen
```bash
git remote -v
```
```text
origin https://github.com/deinname/mein-repo.git (fetch)
origin https://github.com/deinname/mein-repo.git (push)
```
---
## Push Commits hochladen
```bash
git push -u origin main
```
```text
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (5/5), 432 bytes | 432.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/deinname/mein-repo.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
```
Das `-u` speichert die Verbindung. Ab jetzt reicht `git push`.
---
## Pull & Fetch Änderungen herunterladen
```bash
git pull
```
Lädt neue Commits vom Remote und integriert sie direkt in deinen aktuellen Branch (= `git fetch` + `git merge`).
```bash
git fetch
```
Lädt neue Commits, integriert sie aber **noch nicht**. Du kannst erst prüfen, was sich geändert hat:
```bash
git fetch
git log HEAD..origin/main --oneline
git merge origin/main
```
| Befehl | Was passiert |
|--------|-------------|
| `git fetch` | Holt neue Commits, verändert deinen Branch nicht |
| `git pull` | Holt + merged (= fetch + merge) |
---
## Der Pull-Request-Workflow
Ein **Pull Request (PR)** ist keine Git-Funktion, sondern eine Funktion von GitHub/GitLab. Er ermöglicht Code-Review, bevor Änderungen in `main` landen.
### Typischer Ablauf:
1. Du erstellst einen Feature-Branch lokal
2. Du machst Commits auf dem Branch
3. Du pushst den Branch auf das Remote:
```bash
git push -u origin feature/mein-feature
```
4. Auf GitHub/GitLab klickst du auf **"New Pull Request"** (GitHub) oder **"New Merge Request"** (GitLab)
5. Du wählst `main` als Zielbranch und deinen Feature-Branch als Quellbranch
6. Du gibst Titel und Beschreibung ein
7. Kollegen reviewen den Code und hinterlassen Kommentare
8. Du bearbeitest Feedback und machst weitere Commits (erscheinen automatisch im PR)
9. Nach Freigabe klickt jemand auf **"Merge"**
---
## Mini-Aufgabe
> **Voraussetzung:** Du hast einen Account auf GitHub oder GitLab.
1. Erstelle ein leeres Remote-Repo (kein README!)
2. Verbinde dein lokales Repo aus Modul 02 mit dem Remote:
```bash
git remote add origin <URL-deines-Repos>
git push -u origin main
```
3. Öffne das Remote-Repo im Browser deine Dateien sind da!
4. Erstelle einen Branch `feature/test`, mache einen Commit, push ihn und erstelle einen Pull Request
---
## ✅ Erfolgskriterien
- [ ] `git remote -v` zeigt deine Remote-URL
- [ ] `git push` hat alle Commits hochgeladen (Status 200 / kein Fehler)
- [ ] Du kannst deine Dateien im Browser auf GitHub/GitLab sehen
- [ ] Du hast einen Pull Request erstellt
---
**Weiter geht's mit:** [06 Quick Reference](../06-quick-reference/cheatsheet.md)