Changelists und Änderungsgruppen verwenden

Die Idee hinter Changelists

Git selbst kennt nur einen Index – die Staging Area, in der alle vorgemerkten Änderungen unabhängig von ihrem thematischen Zusammenhang landen. PhpStorm erweitert dieses Modell um eine eigene, rein lokale Organisationsebene: Changelists. Sie gruppieren geänderte, hinzugefügte oder gelöschte Dateien nach thematischer Zugehörigkeit, bevor sie überhaupt zu einem Commit werden.

Das ist besonders dann wertvoll, wenn du an mehreren Aufgaben gleichzeitig arbeitest, ohne für jede sofort einen eigenen Branch anzulegen – etwa ein kleiner Bugfix „nebenbei“, während du an einem größeren Feature arbeitest. Changelists sorgen dafür, dass du diese Änderungen getrennt betrachten, einzeln committen und nicht versehentlich miteinander vermischen kannst.

Wichtig: Changelists sind eine reine PhpStorm-Funktion. Sie werden nicht in Git gespeichert und existieren nicht auf der Kommandozeile. Ein Kollege, der dasselbe Repository ausschließlich mit git bearbeitet, sieht davon nichts.

Die Standard-Changelist „Default“

Nach dem Öffnen eines Projekts legt PhpStorm automatisch eine Changelist mit dem Namen Default an. Alle neuen und geänderten Dateien landen zunächst dort, sofern du nichts anderes konfigurierst. Für einfache, lineare Arbeit reicht diese eine Liste völlig aus – erst bei paralleler oder verschachtelter Arbeit lohnt sich eine bewusste Aufteilung.

Eine neue Changelist erstellen

Im Commit-Werkzeugfenster (siehe vorheriges Kapitel) kannst du zusätzliche Changelists anlegen:

  1. Rechtsklick in den Bereich der Changelists → New Changelist…
  2. Namen und optional eine Beschreibung vergeben
  3. Festlegen, ob die neue Liste sofort aktiv werden soll

Die aktive Changelist ist diejenige, der PhpStorm automatisch neu erkannte oder neu hinzugefügte Dateien zuordnet. Es existiert immer genau eine aktive Changelist.

Dateien zwischen Changelists verschieben

Änderungen lassen sich jederzeit einer anderen Changelist zuordnen:

Das ist der zentrale Arbeitsschritt: Statt Änderungen nur über den Dateibaum zu betrachten, sortierst du sie inhaltlich – etwa „Bugfix Login“, „Refactoring Repository-Klasse“ oder „Experimentelle Änderung, noch nicht fertig“.

Commits aus einzelnen Changelists erzeugen

Beim Commit im PhpStorm-Werkzeugfenster wählst du gezielt eine Changelist als Grundlage aus:

  1. Changelist markieren, deren Inhalt committet werden soll
  2. Über das Kontextmenü Commit oder den Commit-Button im Fenster ausführen
  3. Nur die Dateien dieser Liste werden Bestandteil des Commits – alle anderen Changelists bleiben unangetastet

So entstehen saubere, thematisch klare Commits, selbst wenn im Arbeitsverzeichnis gleichzeitig mehrere unabhängige Änderungen offen sind – ganz ohne git add -p oder manuelles Selektieren einzelner Zeilen bei jedem Commit erneut.

flowchart LR
    A["Arbeitsverzeichnis mit vielen Aenderungen"] --> B["Changelist Bugfix"]
    A --> C["Changelist Feature"]
    A --> D["Changelist Experiment"]
    B --> E["Commit 1"]
    C --> F["Commit 2"]
    D -.->|bleibt offen| D

Inaktive Changelists und ihr Nutzen

Eine Changelist muss nicht sofort committet werden. Du kannst sie beliebig lange „liegen lassen“, während du an einer anderen Liste weiterarbeitest. Das ist hilfreich für:

Changelists und Diffs

Jede Changelist besitzt eine eigene Diff-Übersicht. Ein Doppelklick auf eine Datei innerhalb einer Changelist öffnet den Diff nur für diese Datei – unabhängig davon, wie viele andere Änderungen im Projekt insgesamt offen sind. Das erleichtert die Kontrolle vor dem Commit erheblich, weil du dich ausschließlich auf den relevanten Ausschnitt konzentrierst.

Abgrenzung zu Shelving

Changelists solltest du nicht mit dem Shelf verwechseln, einem verwandten, aber eigenständigen PhpStorm-Werkzeug:

Merkmal Changelist Shelf
Zweck Thematische Gruppierung offener Änderungen Temporäres Zurücklegen von Änderungen
Sichtbarkeit im Arbeitsverzeichnis Ja, Dateien bleiben geändert sichtbar Nein, Änderungen werden aus dem Arbeitsverzeichnis entfernt
Git-Äquivalent Kein direktes Äquivalent Ähnlich zu git stash
Typischer Einsatz Parallele Commits vorbereiten Kurzfristig „Platz schaffen“, z. B. für einen dringenden Branch-Wechsel

Wenn du also nur kurzfristig störende Änderungen aus dem Weg räumen möchtest, ist der Shelf das passendere Werkzeug; für die dauerhafte, inhaltliche Organisation mehrerer parallel offener Themen sind Changelists die richtige Wahl.

Praktische Hinweise für den Alltag

Mit diesem Werkzeug behältst du auch in unübersichtlichen Arbeitsphasen die Kontrolle darüber, was in welchen Commit einfließt – ein wichtiger Baustein für die im nächsten Abschnitt behandelte Zuordnung von IDE-Aktionen zu den entsprechenden Git-Befehlen auf der Kommandozeile.


Revision #1
Created 2026-07-26 17:08:59 UTC by art10m
Updated 2026-07-26 17:09:10 UTC by art10m