# Änderungen rückgängig machen in PhpStorm – vor dem Commit 🔄

Du hast an einer oder mehreren Dateien gearbeitet, aber die Änderungen gefallen dir nicht oder du hast dich verrannt? Kein Problem – solange du noch **nicht committed** hast, kannst du deine Dateien ganz einfach auf den letzten gespeicherten Stand im Repository zurücksetzen. PhpStorm bietet dafür eine komfortable Funktion namens **Rollback**.

---

## Das Konzept verstehen

Wenn du Änderungen an Dateien vornimmst, befinden sich diese zunächst im **Working Directory** – also deinem Arbeitsbereich. Git weiß, dass die Dateien verändert wurden (sie erscheinen als „modified"), aber diese Änderungen sind noch nicht Teil der Versionshistorie.

Der Befehl, den du im Terminal verwenden würdest, heißt `git checkout -- <datei>` oder in neueren Git-Versionen `git restore <datei>`. In PhpStorm musst du dir diese Befehle aber nicht merken – du nutzt einfach die **Rollback**-Funktion.

```mermaid
flowchart LR
    A["Datei im Working Directory\ngeaendert"] -->|Rollback| B["Datei zurueckgesetzt\nauf letzten Commit-Stand"]
    A -->|Ohne Rollback| C["Aenderung bleibt\nbis zum naechsten Commit"]
```

> ⚠️ **Wichtig:** Wenn du eine Datei zurücksetzt, sind die Änderungen **unwiderruflich verloren** – es gibt kein „Undo" für den Rollback selbst. Überlege also kurz, ob du die Änderungen wirklich verwerfen möchtest.

---

## Eine einzelne Datei zurücksetzen

Wenn du nur eine bestimmte Datei auf den letzten Commit-Stand zurücksetzen möchtest, hast du in PhpStorm mehrere Möglichkeiten:

### Über das Kontextmenü im Projektbaum

1. Navigiere im **Project-Panel** (links) zu der Datei, deren Änderungen du verwerfen möchtest. Geänderte Dateien sind farblich markiert – typischerweise in **Blau** für modifizierte Dateien.

2. **Rechtsklick** auf die Datei und wähle im Kontextmenü **Git → Rollback…** (in älteren Versionen eventuell unter **Local History → Revert**).

3. Es öffnet sich ein Dialog, der dir die Änderungen anzeigt, die zurückgesetzt werden. Bestätige mit **Rollback**.

### Über das Commit-Fenster

1. Öffne das **Commit-Tool-Fenster** mit `Ctrl + K` (Windows/Linux) bzw. `Cmd + K` (macOS) oder über **Git → Commit…**

2. Im Commit-Fenster siehst du links eine Liste aller geänderten Dateien. **Rechtsklick** auf die Datei, die du zurücksetzen möchtest.

3. Wähle **Rollback…** aus dem Kontextmenü.

4. Bestätige den Dialog – die Datei wird auf den Stand des letzten Commits zurückgesetzt.

### Direkt im Editor

Wenn du die betreffende Datei gerade geöffnet hast, kannst du auch über das Menü gehen:

1. Gehe zu **Git → Rollback…** (oder **VCS → Git → Rollback…** in älteren Versionen)

2. PhpStorm zeigt dir einen Dialog mit allen geänderten Dateien. Wähle nur die Datei aus, die du zurücksetzen möchtest (andere Häkchen entfernen).

3. Klicke auf **Rollback**.

---

## Alle Änderungen auf einmal zurücksetzen

Manchmal möchtest du einen kompletten „Reset" machen und **alle** nicht-committeten Änderungen verwerfen. Auch das ist in PhpStorm schnell erledigt:

1. Öffne das Commit-Fenster mit `Ctrl + K` / `Cmd + K`.

2. Du siehst die Liste aller geänderten Dateien. **Markiere alle Dateien**, die du zurücksetzen möchtest (mit `Ctrl + A` / `Cmd + A` kannst du alle auswählen).

3. **Rechtsklick** auf die Auswahl und wähle **Rollback…**

4. Bestätige den Dialog – alle ausgewählten Dateien werden auf den letzten Commit-Stand zurückgesetzt.

Alternativ kannst du auch direkt über das Menü gehen:

1. Gehe zu **Git → Rollback…**
2. Im Dialog sind standardmäßig alle geänderten Dateien ausgewählt
3. Klicke auf **Rollback**, um alles zurückzusetzen

---

## Was ist mit bereits gestageten Dateien?

Wenn du Dateien bereits zur **Staging Area** hinzugefügt hast (also mit `git add` oder in PhpStorm durch Anhaken im Commit-Dialog), funktioniert der Rollback trotzdem – PhpStorm entfernt die Datei aus der Staging Area **und** setzt sie auf den letzten Commit-Stand zurück.

Falls du eine Datei nur aus der Staging Area entfernen möchtest, aber die Änderungen im Working Directory **behalten** willst, ist das ein anderer Fall: Dann entfernst du einfach das Häkchen bei der Datei im Commit-Dialog, ohne einen Rollback zu machen.

---

## Zusammenfassung der Schritte

| Was du tun möchtest | So geht's in PhpStorm |
|---------------------|----------------------|
| **Eine Datei** zurücksetzen | Rechtsklick auf Datei → Git → Rollback… |
| **Alle Änderungen** zurücksetzen | `Ctrl/Cmd + K` → alle auswählen → Rechtsklick → Rollback… |
| **Aus Staging entfernen** (Änderungen behalten) | Im Commit-Dialog das Häkchen bei der Datei entfernen |

---

## Der Unterschied zu „Revert Commit"

Verwechsle **Rollback** nicht mit **Revert**: 

- **Rollback** verwirft Änderungen, die du gemacht hast, aber **noch nicht committed** hast
- **Revert** erstellt einen neuen Commit, der die Änderungen eines **bereits existierenden Commits** rückgängig macht

Wenn du also Änderungen rückgängig machen willst, die du schon committed hast, brauchst du einen anderen Ansatz – aber das ist ein Thema für ein anderes Kapitel. 😉