140 lines
3.8 KiB
Markdown
140 lines
3.8 KiB
Markdown
# 🌐 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)
|