Die Diff-Ansicht in PhpStorm – Änderungen verstehen und gezielt committen 🔍
Wenn du an deinem Code arbeitest, möchtest du oft wissen: Was genau habe ich eigentlich seit dem letzten Commit geändert? Und manchmal möchtest du nicht alle Änderungen auf einmal committen, sondern nur bestimmte Teile. PhpStorm bietet dir dafür eine leistungsstarke Diff-Ansicht und die Möglichkeit, Änderungen auf Zeilen-Ebene auszuwählen – sogenannte partielle Commits oder Chunk-basiertes Staging.
Änderungen seit dem letzten Commit anzeigen
Es gibt mehrere Wege, um zu sehen, was sich in deinen Dateien geändert hat:
Weg 1: Über das Commit-Fenster
- Öffne das Commit-Fenster mit
Strg + K(Windows/Linux) oderCmd + K(macOS) – alternativ über Git → Commit. - Im linken Bereich siehst du alle Dateien, die seit dem letzten Commit verändert wurden. Sie sind farblich markiert:
- Blau: Geänderte Dateien (modified)
- Grün: Neue Dateien (untracked/added)
- Rot/Grau: Gelöschte Dateien
- Doppelklicke auf eine Datei, um die Diff-Ansicht zu öffnen.
Weg 2: Direkt im Editor
Wenn du eine Datei geöffnet hast, zeigt PhpStorm dir Änderungen direkt im Randbereich (Gutter) an:
- Blaue Markierung: Diese Zeilen wurden geändert
- Grüne Markierung: Diese Zeilen sind neu hinzugekommen
- Kleines Dreieck: Hier wurden Zeilen gelöscht
Klickst du auf eine dieser Markierungen, öffnet sich ein kleines Popup, das dir den vorherigen Zustand zeigt und dir erlaubt, die Änderung direkt rückgängig zu machen.
Weg 3: Über das Kontextmenü
- Rechtsklicke auf eine Datei im Projektbaum oder im Commit-Fenster.
- Wähle Git → Show Diff (oder einfach Compare with… → Last Commit).
Die Diff-Ansicht verstehen
Wenn du die Diff-Ansicht öffnest, siehst du standardmäßig eine Side-by-Side-Darstellung:
┌─────────────────────────────┬─────────────────────────────┐
│ Alter Zustand │ Neuer Zustand │
│ (letzter Commit) │ (deine Änderungen) │
├─────────────────────────────┼─────────────────────────────┤
│ function login() { │ function login() { │
│ // alte Logik │ // verbesserte Logik │
│ return false; │ $user = checkUser(); │
│ } │ return $user !== null; │
│ │ } │
└─────────────────────────────┴─────────────────────────────┘
Die wichtigsten Elemente:
- Farbige Hervorhebung: Geänderte, hinzugefügte und entfernte Zeilen sind farblich markiert
- Pfeile zwischen den Spalten: Ermöglichen das Übernehmen von Änderungen in die eine oder andere Richtung
- Navigations-Pfeile oben: Springen zur nächsten/vorherigen Änderung (
F7/Shift + F7)
💡 Tipp: Du kannst die Darstellung umschalten – über das Zahnrad-Icon in der Diff-Ansicht kannst du zwischen Side-by-Side und Unified View (alles untereinander) wechseln.
Einzelne Änderungen zum Commit auswählen – partielle Commits
Jetzt kommt das wirklich Mächtige: Du musst nicht die gesamte Datei committen. PhpStorm erlaubt dir, einzelne Chunks (zusammenhängende Änderungsblöcke) oder sogar einzelne Zeilen auszuwählen.
Warum ist das nützlich?
Stell dir vor, du hast in einer Datei zwei verschiedene Dinge gemacht:
- Einen Bug im Login-System gefixt
- Nebenbei einen Kommentar verbessert
Das sind logisch zwei verschiedene Änderungen, die eigentlich in zwei verschiedene Commits gehören (mit jeweils aussagekräftiger Commit-Nachricht). Mit partiellen Commits kannst du genau das tun.
So funktioniert es in PhpStorm
-
Öffne das Commit-Fenster (
Strg + K/Cmd + K). -
Klicke auf das Zahnrad-Icon (⚙️) im Commit-Fenster und aktiviere die Option „Include into commit" oder ähnlich, falls nicht schon aktiv.
-
Doppelklicke auf die Datei, um die Diff-Ansicht zu öffnen.
-
In der Diff-Ansicht siehst du nun Checkboxen neben jedem Änderungsblock (Chunk):
☑️ Chunk 1: Login-Logik geändert (Zeile 15-22) ☐ Chunk 2: Kommentar aktualisiert (Zeile 45-46) -
Aktiviere oder deaktiviere die Checkboxen, um festzulegen, welche Chunks in diesen Commit aufgenommen werden sollen.
-
Für noch feinere Kontrolle: Manche Versionen von PhpStorm erlauben es, per Rechtsklick auf einen Chunk einzelne Zeilen auszuwählen.
-
Schließe die Diff-Ansicht und schreibe deine Commit-Nachricht nur für die ausgewählten Änderungen.
-
Nach dem Commit sind die nicht ausgewählten Änderungen immer noch da – du kannst sie im nächsten Commit mit einer anderen Nachricht speichern.
Visuelles Schema des Prozesses
flowchart TD
A["📝 Datei mit mehreren Aenderungen"] --> B["Diff-Ansicht oeffnen"]
B --> C{"Welche Chunks\ngehoeren zusammen?"}
C --> D["Chunk 1 auswaehlen:\nLogin-Bugfix"]
C --> E["Chunk 2 abwaehlen:\nKommentar-Update"]
D --> F["Commit 1 erstellen:\nFix: Login-Validierung korrigiert"]
F --> G["Chunk 2 ist noch da\nund wartet"]
G --> H["Commit 2 erstellen:\nDocs: Kommentar aktualisiert"]
Praktisches Beispiel
Du hast folgende Änderungen in UserController.php:
| Zeile | Änderung | Gehört zu |
|---|---|---|
| 23-28 | Passwort-Validierung hinzugefügt | Feature: Sicherheit |
| 45 | Tippfehler in Variable korrigiert | Fix: Typo |
| 67-70 | Neue Methode resetPassword() |
Feature: Sicherheit |
Sinnvolle Vorgehensweise:
-
Erster Commit: Zeilen 23-28 und 67-70 auswählen
Commit-Nachricht:
Feat: Passwort-Validierung und Reset-Funktion hinzugefügt -
Zweiter Commit: Zeile 45 auswählen
Commit-Nachricht:
Fix: Tippfehler in Variablenname korrigiert
So bleibt deine Git-Historie sauber und nachvollziehbar.
Nützliche Tastenkürzel in der Diff-Ansicht
| Aktion | Windows/Linux | macOS |
|---|---|---|
| Diff-Ansicht öffnen | Doppelklick auf Datei im Commit-Fenster | Doppelklick auf Datei im Commit-Fenster |
| Zur nächsten Änderung springen | F7 |
F7 |
| Zur vorherigen Änderung springen | Shift + F7 |
Shift + F7 |
| Änderung übernehmen (von links nach rechts) | Strg + Shift + → |
Cmd + Shift + → |
| Änderung rückgängig machen | Klick auf den Rückgängig-Pfeil | Klick auf den Rückgängig-Pfeil |
| Diff schließen | Esc |
Esc |
Zusammenfassung ✅
- Die Diff-Ansicht zeigt dir präzise, was sich seit dem letzten Commit geändert hat – entweder per Doppelklick im Commit-Fenster oder über die farbigen Markierungen direkt im Editor.
- Du kannst einzelne Chunks (Änderungsblöcke) auswählen und damit logisch zusammengehörige Änderungen separat committen.
- Das führt zu einer sauberen, nachvollziehbaren Git-Historie, in der jeder Commit genau eine Sache macht.
- PhpStorm macht diesen Prozess besonders komfortabel durch die visuelle Darstellung mit Checkboxen neben jedem Chunk.
💡 Profi-Tipp: Gewöhne dir an, vor jedem Commit kurz die Diff-Ansicht zu öffnen und zu prüfen, ob wirklich alle Änderungen zusammengehören. Das dauert nur Sekunden, spart dir aber später viel Zeit beim Debugging oder wenn du eine bestimmte Änderung suchen musst.