Zum Inhalt springen
Git & GitHub Anfänger 30 min

Pull Requests

Lerne, wie du Pull Requests erstellst, reviewst und mergst - das zentrale Werkzeug für Zusammenarbeit auf GitHub.

Aktualisiert:

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

  1. Gehe zu deinem Repository auf GitHub
  2. Du siehst einen gelben Banner: “feature/kontakt-formular had recent pushes”
  3. Klicke auf Compare & pull request

Oder:

  1. Klicke auf den Tab Pull requests
  2. Klicke auf New pull request
  3. 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
![Kontaktformular](screenshots/kontakt.png)

## 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

TabInhalt
ConversationDiskussion, Kommentare, Status
CommitsAlle Commits im PR
ChecksAutomatische Tests (CI/CD)
Files changedAlle 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

  1. Gehe zum Tab Files changed
  2. Fahre mit der Maus ueber eine Zeile
  3. Klicke auf das +-Symbol
  4. Schreibe einen Kommentar
  5. 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?

MethodeWann
Merge CommitStandard, bewahrt alle Details
Squash and MergeKleine Features, saubere Historie
Rebase and MergeLineare 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:

  1. Erstelle den PR wie gewohnt
  2. 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

  1. Erstelle einen Feature-Branch, mache Commits und pushe ihn
  2. Erstelle einen Pull Request auf GitHub
  3. Schreibe einen Review-Kommentar an deinen eigenen PR
  4. Merge den PR mit “Squash and Merge”
  5. Raeume den Branch lokal und remote auf
  6. 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.

Zurück zum Git & GitHub Kurs