Pull Requests
Lerne, wie du Pull Requests erstellst, reviewst und mergst - das zentrale Werkzeug für Zusammenarbeit auf GitHub.
Pull Requests (kurz: PRs) sind das Herzgtueck der Zusammenarbeit auf GitHub. Sie ermoeglchen es dir, Aenderungen vorzuschlagen, darueber zu diskutieren und sie nach einem Review zusammenzufuehren. In diesem Kapitel lernst du den kompletten PR-Workflow von A bis Z.
Was ist ein Pull Request?
Ein Pull Request ist eine Anfrage, deine Aenderungen aus einem Branch in einen anderen Branch zu uebernehmen. Dabei koennen andere Entwickler:
- Deine Aenderungen ansehen und kommentieren
- Verbesserungen vorschlagen
- Den Code genehmigen oder ablehnen
- Die Aenderungen zusammenfuehren (mergen)
Feature-Branch: A ── B ── C
\
PR: "Bitte in main mergen!"
/
main: X ── Y ── Z
Einen Pull Request erstellen
Schritt 1: Feature-Branch erstellen und pushen
# Neuen Branch erstellen
git switch -c feature/kontakt-formular
# Arbeiten und committen
touch kontakt.html
# ... Inhalt hinzufuegen ...
git add kontakt.html
git commit -m "feat: Kontaktformular mit Validierung erstellt"
git add style.css
git commit -m "style: Styling fuer Kontaktformular"
# Auf GitHub pushen
git push -u origin feature/kontakt-formular
remote: Create a pull request for 'feature/kontakt-formular' on GitHub by visiting:
remote: https://github.com/dein-name/projekt/pull/new/feature/kontakt-formular
Schritt 2: PR auf GitHub erstellen
- Gehe zu deinem Repository auf GitHub
- Du siehst einen gelben Banner: “feature/kontakt-formular had recent pushes”
- Klicke auf Compare & pull request
Oder:
- Klicke auf den Tab Pull requests
- Klicke auf New pull request
- Waehle den Base-Branch (
main) und den Compare-Branch (feature/kontakt-formular)
Schritt 3: PR-Formular ausfuellen
Title: feat: Kontaktformular hinzufuegen
Description:
## Was wurde geaendert?
- Kontaktformular mit Name, E-Mail und Nachricht erstellt
- Client-seitige Validierung implementiert
- Responsives Design fuer mobile Geraete
## Screenshots

## Wie testen?
1. `kontakt.html` im Browser oeffnen
2. Formular ausfuellen und absenden
3. Validierung pruefen (leere Felder, ungueltige E-Mail)
## Checkliste
- [x] Code getestet
- [x] Responsives Design geprueft
- [x] README aktualisiert
Schritt 4: PR erstellen
Klicke auf Create pull request.
Anatomie eines Pull Requests
Die Tabs
| Tab | Inhalt |
|---|---|
| Conversation | Diskussion, Kommentare, Status |
| Commits | Alle Commits im PR |
| Checks | Automatische Tests (CI/CD) |
| Files changed | Alle geaenderten Dateien mit Diff |
Der Diff-View
Im Tab “Files changed” siehst du alle Aenderungen:
+ <form class="contact-form">
+ <label for="name">Name:</label>
+ <input type="text" id="name" required>
+
+ <label for="email">E-Mail:</label>
+ <input type="email" id="email" required>
+
+ <label for="message">Nachricht:</label>
+ <textarea id="message" required></textarea>
+
+ <button type="submit">Senden</button>
+ </form>
Pull Requests reviewen
Kommentare hinterlassen
- Gehe zum Tab Files changed
- Fahre mit der Maus ueber eine Zeile
- Klicke auf das +-Symbol
- Schreibe einen Kommentar
- Klicke auf Start a review (oder Add single comment)
Arten von Review-Kommentaren
1. Allgemeiner Kommentar:
"Sieht gut aus! Nur eine Kleinigkeit..."
2. Verbesserungsvorschlag:
"Koenntest du hier noch eine Fehlerbehandlung hinzufuegen?"
3. Code-Vorschlag (Suggestion):
```suggestion
<input type="email" id="email" required pattern="[^@]+@[^@]+\.[^@]+">
(Der Autor kann den Vorschlag mit einem Klick uebernehmen!)
### Review abschliessen
Wenn du fertig bist, klicke auf **Review changes** und waehle:
| Option | Bedeutung |
|---|---|
| **Comment** | Allgemeiner Kommentar (neutral) |
| **Approve** | Du genehmigst die Aenderungen |
| **Request changes** | Du forderst Aenderungen an |
## Aenderungen nach dem Review einarbeiten
Wenn der Reviewer Aenderungen angefordert hat:
```bash
# Du bist noch auf deinem Feature-Branch
git switch feature/kontakt-formular
# Aenderungen einarbeiten
# ... Code anpassen ...
git add kontakt.html
git commit -m "fix: Validierung verbessert nach Review"
# Erneut pushen - der PR wird automatisch aktualisiert!
git push
Der PR auf GitHub wird automatisch mit den neuen Commits aktualisiert.
Einen Pull Request mergen
Wenn alle Reviews positiv sind, kann der PR gemergt werden. GitHub bietet drei Merge-Optionen:
Option 1: Merge Commit (Standard)
main: A ── B ── M (Merge-Commit)
/
feature: C ── D ──
Erstellt einen Merge-Commit. Die komplette Branch-Historie bleibt erhalten.
Option 2: Squash and Merge
main: A ── B ── CD (Ein Commit)
Alle Commits des Feature-Branches werden zu einem einzigen Commit zusammengefasst. Ideal fuer kleine Features.
Option 3: Rebase and Merge
main: A ── B ── C ── D (Lineare Historie)
Die Commits werden einzeln auf main angewendet. Erzeugt eine lineare Historie.
Welche Option waehlen?
| Methode | Wann |
|---|---|
| Merge Commit | Standard, bewahrt alle Details |
| Squash and Merge | Kleine Features, saubere Historie |
| Rebase and Merge | Lineare Historie gewuenscht |
Nach dem Merge aufraeumen
Auf GitHub
GitHub bietet nach dem Merge einen Button Delete branch. Nutze ihn!
Lokal
# Zurueck zu main
git switch main
# Neueste Aenderungen holen (inklusive des Merges)
git pull
# Lokalen Feature-Branch loeschen
git branch -d feature/kontakt-formular
# Geloeschte Remote-Branches aufraumen
git fetch --prune
PR-Templates erstellen
Erstelle eine Vorlage, damit PRs immer das gleiche Format haben:
Erstelle die Datei .github/pull_request_template.md in deinem Repository:
## Beschreibung
<!-- Was wurde geaendert und warum? -->
## Art der Aenderung
- [ ] Neues Feature
- [ ] Bugfix
- [ ] Refactoring
- [ ] Dokumentation
## Screenshots
<!-- Falls relevant -->
## Wie testen?
<!-- Schritt-fuer-Schritt Anleitung -->
## Checkliste
- [ ] Code getestet
- [ ] README aktualisiert
- [ ] Keine Konsolenfehler
mkdir -p .github
# ... Template erstellen ...
git add .github/pull_request_template.md
git commit -m "chore: PR-Template hinzugefuegt"
git push
Draft Pull Requests
Wenn du frueh Feedback haben moechtest, aber noch nicht fertig bist:
- Erstelle den PR wie gewohnt
- Waehle Create draft pull request statt Create pull request
Ein Draft-PR kann nicht gemergt werden und signalisiert: “Noch in Arbeit, aber schaut gerne schon mal rein!”
Wenn du fertig bist, klicke auf Ready for review.
Uebungen
- Erstelle einen Feature-Branch, mache Commits und pushe ihn
- Erstelle einen Pull Request auf GitHub
- Schreibe einen Review-Kommentar an deinen eigenen PR
- Merge den PR mit “Squash and Merge”
- Raeume den Branch lokal und remote auf
- Erstelle ein PR-Template fuer dein Projekt
Was kommt als Naechstes?
Im naechsten Kapitel lernst du Code Reviews im Detail kennen - wie du hilfreiche Reviews schreibst und selbst von Reviews profitierst.
Zusammenfassung
- Pull Requests sind das zentrale Werkzeug fuer Zusammenarbeit auf GitHub
- Ein PR enthaelt eine Beschreibung, Commits und einen Diff
- Reviewer koennen kommentieren, genehmigen oder Aenderungen anfordern
- Neue Commits werden automatisch zum PR hinzugefuegt
- Es gibt drei Merge-Strategien: Merge Commit, Squash, Rebase
- Draft PRs signalisieren “noch in Arbeit”
- PR-Templates sorgen fuer einheitliche Beschreibungen
Pro-Tipp: Halte deine Pull Requests klein und fokussiert. Ein PR mit 50 geaenderten Zeilen wird gruendlich reviewt, einer mit 5000 Zeilen wird nur ueberflogen. Kleinere PRs werden schneller gemergt und haben weniger Bugs.