# Den letzten Commit in PhpStorm korrigieren 🔧

Es passiert jedem: Du hast gerade auf „Commit" geklickt und merkst sofort, dass du eine Datei vergessen hast oder sich ein peinlicher Tippfehler in die Commit-Nachricht eingeschlichen hat. Die gute Nachricht: Git bietet genau für diesen Fall eine elegante Lösung – das sogenannte **Amend** (englisch für „ändern" oder „verbessern"). Und PhpStorm macht es dir besonders einfach, diese Funktion zu nutzen.

---

## Was bedeutet „Amend" eigentlich?

Wenn du einen Commit „amendest", **ersetzt** du den letzten Commit durch einen neuen. Dabei kannst du:

- **Dateien hinzufügen**, die du vergessen hattest
- **Dateien entfernen**, die versehentlich dabei waren
- **Die Commit-Nachricht ändern**
- **Änderungen an bereits enthaltenen Dateien ergänzen**

Wichtig zu verstehen: Der alte Commit wird nicht wirklich „bearbeitet", sondern durch einen **komplett neuen Commit ersetzt**. Für dich sieht es so aus, als hättest du den Fehler nie gemacht – die Historie bleibt sauber.

> ⚠️ **Achtung:** Du solltest Amend nur verwenden, wenn du den Commit **noch nicht gepusht** hast. Sobald ein Commit auf einem Remote-Repository (z. B. GitHub) liegt und andere damit arbeiten könnten, kann das Ändern der Historie zu Problemen führen. Für lokale, noch nicht geteilte Commits ist Amend aber völlig unbedenklich.

---

## Schritt-für-Schritt-Anleitung in PhpStorm

### Fall 1: Du hast eine Datei vergessen

1. **Nimm die gewünschten Änderungen vor**  
   Bearbeite die vergessene Datei oder füge sie dem Projekt hinzu – ganz normal, wie du es sonst auch tun würdest.

2. **Öffne das Commit-Fenster**  
   Drücke `Ctrl + K` (Windows/Linux) bzw. `Cmd + K` (macOS), oder gehe über **Git → Commit…**

3. **Wähle die nachzureichenden Dateien aus**  
   Im Commit-Fenster siehst du links die Liste der geänderten Dateien. Setze den Haken bei den Dateien, die du zum letzten Commit hinzufügen möchtest.

4. **Aktiviere die Amend-Option**  
   Im Commit-Fenster findest du ein kleines Zahnrad-Symbol ⚙️ oder direkt eine Checkbox mit der Beschriftung **„Amend commit"** (manchmal auch **„Amend"** genannt). Diese Option befindet sich typischerweise:
   - Rechts neben dem Eingabefeld für die Commit-Nachricht, oder
   - Im Dropdown-Menü des Commit-Buttons

   Sobald du „Amend" aktivierst, passiert etwas Praktisches: Die **Commit-Nachricht des letzten Commits** wird automatisch ins Textfeld geladen.

5. **Commit-Nachricht anpassen (optional)**  
   Wenn die Nachricht bereits passt, lass sie so. Wenn du sie ändern möchtest, kannst du das jetzt tun.

6. **Commit abschließen**  
   Klicke auf **Commit** (nicht auf „Commit and Push"!). Der letzte Commit wird nun durch den neuen, korrigierten Commit ersetzt.

---

### Fall 2: Du möchtest nur die Commit-Nachricht ändern

Manchmal hast du keine Dateien vergessen, sondern nur einen Tippfehler in der Nachricht oder möchtest sie präziser formulieren. Das geht noch schneller:

1. **Öffne das Commit-Fenster** (`Ctrl + K` / `Cmd + K`)

2. **Aktiviere „Amend commit"**  
   Die alte Nachricht erscheint im Textfeld.

3. **Korrigiere die Nachricht**  
   Schreibe die Nachricht so, wie sie sein sollte.

4. **Stelle sicher, dass keine Dateien ausgewählt sind**  
   Wenn du wirklich nur die Nachricht ändern willst, sollten keine neuen Dateien angehakt sein. PhpStorm wird dann nur die Nachricht aktualisieren.

5. **Klicke auf Commit**

---

## Visueller Überblick

```mermaid
flowchart TD
    A["Letzter Commit ist fehlerhaft\n- Datei vergessen?\n- Nachricht falsch?"] --> B["Aenderungen vornehmen\noder direkt Commit-Fenster oeffnen"]
    B --> C["Commit-Fenster oeffnen\nStrg+K / Cmd+K"]
    C --> D["Option 'Amend commit'\naktivieren"]
    D --> E{"Was korrigieren?"}
    E -->|Dateien nachreichen| F["Dateien auswaehlen\nund Commit"]
    E -->|Nur Nachricht| G["Nachricht korrigieren\nund Commit"]
    F --> H["Alter Commit wird ersetzt\nHistorie bleibt sauber"]
    G --> H
```

---

## Wo finde ich die Amend-Option genau?

Je nach PhpStorm-Version kann die Oberfläche leicht variieren. Hier die typischen Stellen:

| PhpStorm-Version | Position der Amend-Option |
|------------------|--------------------------|
| **Neuere Versionen** (2021+) | Direkt unter dem Nachrichtenfeld als Checkbox „Amend" oder im Zahnrad-Menü ⚙️ rechts |
| **Ältere Versionen** | Im Dropdown-Pfeil neben dem „Commit"-Button → „Commit and Amend" |

Wenn du die Option nicht sofort siehst, schau nach einem **Zahnrad-Symbol** oder einem **kleinen Pfeil** neben dem Commit-Button – dort verstecken sich oft erweiterte Optionen.

---

## Was passiert technisch im Hintergrund?

Wenn du in der Kommandozeile arbeiten würdest, entspräche das Ganze diesem Befehl:

```bash
git commit --amend
```

Oder, wenn du auch Dateien hinzufügen möchtest:

```bash
git add vergessene_datei.php
git commit --amend
```

Git erstellt dabei einen **neuen Commit mit einer neuen ID** (dem sogenannten *Hash*), der den alten ersetzt. Der alte Commit existiert technisch noch kurz im Hintergrund, wird aber nicht mehr referenziert und irgendwann automatisch aufgeräumt.

---

## Häufige Fragen und Stolperfallen

### „Kann ich auch ältere Commits ändern, nicht nur den letzten?"

Ja, aber das ist deutlich komplizierter und erfordert einen sogenannten **Interactive Rebase**. Für den Anfang solltest du dich auf das Amenden des *letzten* Commits beschränken – das deckt 90 % der Fälle ab.

### „Ich habe schon gepusht – was jetzt?"

Wenn du einen bereits gepushten Commit amendest und dann erneut pushen willst, wird Git sich beschweren, weil die Historien nicht mehr übereinstimmen. Du könntest einen **Force Push** machen (`git push --force`), aber das ist **gefährlich**, wenn andere mit dem Repository arbeiten. Bei persönlichen Projekten, an denen nur du arbeitest, ist es meist okay – aber sei vorsichtig.

### „Was, wenn ich Amend aus Versehen aktiviert habe?"

Keine Panik! Solange du noch nicht auf „Commit" geklickt hast, kannst du die Checkbox einfach wieder deaktivieren. Falls du den Amend-Commit bereits gemacht hast, kannst du mit `git reflog` (im Terminal) den alten Commit wiederfinden – aber das ist ein fortgeschrittenes Thema.

---

## Zusammenfassung ✅

| Situation | Lösung in PhpStorm |
|-----------|--------------------|
| Datei im letzten Commit vergessen | Datei auswählen → „Amend commit" aktivieren → Commit |
| Commit-Nachricht korrigieren | „Amend commit" aktivieren → Nachricht ändern → Commit |
| Bereits gepushter Commit | ⚠️ Amend vermeiden oder Force Push (nur bei Solo-Projekten) |

Das Amenden ist eines der nützlichsten Features für den Alltag – es hält deine Commit-Historie sauber und erspart dir peinliche „Datei vergessen"-Commits. Nutze es ruhig großzügig, solange du noch nicht gepusht hast! 🎯