Wo Settings Sync endet und projektweit geteilte .idea-Einstellungen im Repository anfangen
Wer zwischen Buero-Rechner, Laptop im Homeoffice und gelegentlich einer frisch aufgesetzten VM wechselt, kennt das Problem: Keymaps, Farbschemas und persoenliche Live Templates muessen jedes Mal neu eingerichtet werden. Settings Sync loest genau das, indem es persoenliche Einstellungen ueber den JetBrains-Account geraeteuebergreifend abgleicht. Wichtig ist dabei, klar zu trennen, was in Settings Sync gehoert und was stattdessen als projektweiter Standard im .idea-Ordner des Repositorys versioniert werden sollte, denn beide Mechanismen loesen unterschiedliche Probleme.
Inhaltsverzeichnis
- 1. Was Settings Sync ist und welches Problem es loest
- 2. Was tatsaechlich synchronisiert wird
- 3. Settings Sync aktivieren und den Sync-Umfang steuern
- 4. Der .idea-Ordner: projektweite Einstellungen im Repository
- 5. Entscheidungshilfe: Was gehoert wohin
- 6. Konflikte zwischen Sync und projektweiten Overrides loesen
- 7. Mehrere Rechner: Buero, Homeoffice und Remote Development
- 8. Was niemals ueber Settings Sync verteilt werden darf
- 9. Praxis-Setup fuer ein PHP- und Magento-Team
- 10. Zusammenfassung
- 11. FAQ
1. Was Settings Sync ist und welches Problem es loest
Settings Sync ist eine in PhpStorm eingebaute Funktion, die persoenliche IDE-Einstellungen an den eingeloggten JetBrains-Account bindet und automatisch zwischen allen Geraeten repliziert, auf denen mit demselben Account gearbeitet wird. Das umfasst Editor-Farben, Keymaps, installierte Plugins und viele weitere persoenliche Vorlieben.
Ohne Settings Sync muesste jeder Entwickler nach einer Neuinstallation oder auf einem zweiten Rechner alle Anpassungen manuell wiederholen, was schnell laestig wird und dazu fuehrt, dass Einstellungen zwischen Geraeten auseinanderlaufen. Settings Sync ersetzt das durch einen einmaligen Login und automatische Uebertragung im Hintergrund.
Besonders deutlich wird der Effekt bei Onboarding-Situationen: Ein neuer Kollege kann am ersten Tag produktiv arbeiten, sobald Settings Sync die gewohnte Tastenbelegung und die bevorzugten Farbschemata uebernommen hat, statt Stunden mit dem Nachbauen persoenlicher Praeferenzen zu verbringen.
2. Was tatsaechlich synchronisiert wird
Zum Umfang gehoeren unter anderem UI-Theme, Schriftgroesse und Farbschema, Keymap-Anpassungen, aktivierte und deaktivierte Plugins, persoenliche Live Templates und Postfix Templates sowie zahlreiche Editor-Feineinstellungen wie Zeilenumbruch oder Anzeige von Whitespace-Zeichen.
Nicht synchronisiert werden dagegen projektspezifische Dinge wie Run Configurations mit Umgebungsvariablen, der Interpreter-Pfad eines konkreten Projekts oder Datenbank-Verbindungen mit gespeicherten Zugangsdaten. Diese Trennung ist bewusst so gewaehlt, damit persoenliche Vorlieben nicht versehentlich projektspezifische Konfiguration ueberschreiben.
Auch Notizen in Scratch Files, gespeicherte Suchmuster im Search Everywhere Verlauf und individuell konfigurierte Toolwindow-Layouts gehoeren zum synchronisierten Umfang, sofern die jeweilige Kategorie aktiviert ist, was den Wechsel zwischen Geraeten noch nahtloser macht.
3. Settings Sync aktivieren und den Sync-Umfang steuern
Aktiviert wird die Funktion unter Settings, Settings Sync, wo sich nach dem Login mit dem JetBrains-Account einzelne Kategorien gezielt an oder abschalten lassen. Wer zum Beispiel Keymaps synchronisieren, aber Farbschemas bewusst pro Geraet unterschiedlich halten moechte, kann das hier granular festlegen.
Die synchronisierten Daten werden verschluesselt in der JetBrains-Cloud abgelegt, wobei sich auch ein eigener Speicherort ueber ein Settings Repository konfigurieren laesst, etwa ein privates Git-Repository, wenn die Firmenrichtlinie keine Drittanbieter-Cloud fuer Konfigurationsdaten erlaubt.
Direkt nach der ersten Aktivierung empfiehlt sich ein kurzer Testlauf auf einem zweiten Geraet, um zu pruefen, ob tatsaechlich alle gewuenschten Kategorien ankommen, bevor man sich vollstaendig auf die automatische Synchronisierung verlaesst und lokale Sicherungen der eigenen Konfiguration aufgibt.
<!-- .idea/codeStyles/Project.xml (projektweit, NICHT Settings Sync) -->
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<PHPCodeStyleSettings>
<option name="ALIGN_KEY_VALUE_PAIRS" value="true" />
</PHPCodeStyleSettings>
</code_scheme>
</component>
4. Der .idea-Ordner: projektweite Einstellungen im Repository
Waehrend Settings Sync persoenliche Vorlieben transportiert, sorgt der .idea-Ordner im Projekt-Repository fuer Team-Standards, die fuer alle gleich sein muessen: Code-Style-Regeln, Inspection-Profile, Run Configurations fuer PHPUnit oder Magento CLI Commands und die Zuordnung des PHP-Interpreters.
Nicht der gesamte .idea-Ordner sollte versioniert werden. Dateien wie workspace.xml oder tasks.xml enthalten rein lokale UI-Zustaende und gehoeren in die .gitignore, waehrend codeStyles, inspectionProfiles und runConfigurations bewusst eingecheckt werden, damit sie beim Checkout automatisch fuer alle greifen.
# Typischer git status Ausschnitt im .idea-Ordner
$ git status .idea/
modified: .idea/inspectionProfiles/Project_Default.xml
modified: .idea/runConfigurations/PHPUnit__Catalog_.xml
# workspace.xml und tasks.xml stehen bewusst in .gitignore
$ cat .gitignore | grep idea
.idea/workspace.xml
.idea/tasks.xml
.idea/httpRequests/
5. Entscheidungshilfe: Was gehoert wohin
Die einfachste Faustregel lautet: Alles, was ein einzelner Entwickler aus persoenlicher Vorliebe anders haben moechte, gehoert in Settings Sync. Alles, was fuer die Zusammenarbeit im Team konsistent sein muss, gehoert versioniert in den .idea-Ordner des Projekts.
Ein Keymap ist reine Geschmackssache und gehoert damit klar in Settings Sync. Eine PHP-Version fuer den Interpreter oder ein Inspection-Profil mit den Team-Regeln fuer Magento-Coding-Standards betrifft dagegen alle gleichermassen und gehoert zwingend ins Projekt-Repository, nicht in den persoenlichen Sync.
Eine hilfreiche Zwischenfrage lautet: Wuerde es dem Projekt schaden, wenn zwei Entwickler diese Einstellung unterschiedlich haetten? Bei einem Farbschema lautet die Antwort eindeutig nein, bei einer PHPStan-Konfigurationsdatei oder einem Inspection-Profil dagegen eindeutig ja.
6. Konflikte zwischen Sync und projektweiten Overrides loesen
Konflikte entstehen typischerweise, wenn eine projektspezifische Einstellung im .idea-Ordner eine persoenliche Vorliebe aus Settings Sync ueberschreibt, etwa ein projektweit definiertes Farbschema fuer Diff-Ansichten. PhpStorm zeigt in solchen Faellen in der Regel an, welche Ebene aktuell greift.
Im Zweifel gilt: projektspezifische Einstellungen im .idea-Ordner haben Vorrang vor global synchronisierten Werten, da sie naeher am konkreten Projekt liegen. Wer das nicht moechte, kann die betroffene Kategorie gezielt aus der Projekt-Konfiguration entfernen und die Entscheidung bewusst wieder Settings Sync ueberlassen.
In der Praxis treten solche Konflikte selten grossflaechig auf, da projektspezifische Overrides meist nur wenige, gezielt ausgewaehlte Kategorien betreffen. Ein kurzer Blick in die Projekt-.idea-Dateien schafft in Zweifelsfaellen schnell Klarheit darueber, welche Einstellung tatsaechlich greift.
7. Mehrere Rechner: Buero, Homeoffice und Remote Development
Fuer Entwickler, die zwischen Buero-Desktop und Laptop wechseln, reduziert Settings Sync die Einrichtungszeit auf wenigen Minuten: Login mit dem JetBrains-Account genuegt, und Plugins, Keymap sowie Farbschema stehen kurz darauf in identischer Form zur Verfuegung.
Auch bei JetBrains Remote Development, wo der eigentliche Code auf einem entfernten Docker-Host oder Server liegt, greift Settings Sync fuer die Thin-Client-Oberflaeche, waehrend projektspezifische Einstellungen weiterhin aus dem entfernten .idea-Ordner des jeweiligen Projekts geladen werden.
Fuer Freelancer, die an mehreren Kundenprojekten gleichzeitig arbeiten, reduziert Settings Sync zusaetzlich das Risiko, dass persoenliche Einstellungen versehentlich zwischen Projekten vermischt werden, da die persoenliche Konfiguration unabhaengig vom jeweils geoeffneten Projekt-Repository bleibt.
8. Was niemals ueber Settings Sync verteilt werden darf
Run Configurations koennen Umgebungsvariablen enthalten, in denen unbedacht Tokens oder Passwoerter landen. Solche Configurations werden zwar meist im Projekt-.idea-Ordner versioniert, nicht ueber Settings Sync verteilt, trotzdem lohnt sich eine bewusste Pruefung, bevor eine Run Configuration eingecheckt wird.
Grundsaetzlich gilt: Secrets gehoeren weder in Settings Sync noch in den versionierten .idea-Ordner, sondern in Umgebungsvariablen, die ueber lokale .env-Dateien oder die private HTTP-Client-Umgebungsdatei eingespeist werden. Placeholder-Syntax macht Run Configurations sicher teilbar, ohne echte Werte preiszugeben.
<!-- .idea/runConfigurations/Magento_CLI.xml, sicher versionierbar -->
<component name="ProjectRunConfigurationManager">
<configuration name="Magento CLI" type="PHPUnitRunConfigurationType">
<envs>
<!-- Platzhalter statt echtem Token, Wert kommt aus lokaler Shell -->
<env name="MAGENTO_ADMIN_TOKEN" value="$MAGENTO_ADMIN_TOKEN" />
</envs>
</configuration>
</component>
9. Praxis-Setup fuer ein PHP- und Magento-Team
Ein bewaehrtes Setup sieht so aus: Jeder Entwickler aktiviert Settings Sync fuer persoenliche Kategorien wie Keymap, Theme und persoenliche Live Templates. Das Projekt-Repository versioniert dagegen Code-Style, Inspection-Profile und Run Configurations im .idea-Ordner, ergaenzt um eine .gitignore fuer rein lokale Dateien wie workspace.xml.
Zusaetzlich lohnt sich eine kurze Onboarding-Notiz im Projekt-Wiki oder README, die neuen Entwicklern erklaert, welche Einstellungen automatisch aus dem Repository kommen und welche sie selbst ueber Settings Sync oder manuell einrichten muessen. Das verhindert Verwirrung, wenn Erwartung und tatsaechliches Verhalten der IDE auseinanderklaffen.
Ergaenzend empfiehlt sich ein kurzer jaehrlicher Check, ob alle Team-relevanten Einstellungen im .idea-Ordner noch aktuell sind, da sich Magento-Coding-Standards und Team-Konventionen ueber die Zeit weiterentwickeln und die versionierte Konfiguration sonst schleichend veraltet.
| Mechanismus | Reichweite | Speicherort | Typischer Inhalt |
|---|---|---|---|
| Settings Sync | Persoenlich, geraeteuebergreifend | JetBrains-Account oder eigenes Repository | Keymap, Theme, persoenliche Templates |
| .idea-Ordner im Projekt | Teamweit, projektgebunden | Projekt-Repository | Code-Style, Inspection-Profile, Run Configurations |
| Manueller Settings-Export | Punktuell, einmalig | ZIP-Datei | Kompletter Snapshot fuer Migration |
| Settings Repository Plugin | Teamweit, geraeteuebergreifend | Eigenes Git-Repository | Erzwungene Team-Defaults |
Mironsoft
PhpStorm-Setup, Docker-Integration und Team-Produktivität
PhpStorm, das für Magento- und PHP-Projekte wirklich optimal läuft?
Wir prüfen bestehende PhpStorm-Setups auf langsame Indizierung, ungenutzte Docker-Integration und fehlende Team-Konventionen und richten eine Konfiguration ein, die von der ersten Sekunde an produktiv ist.
Setup-Review
Indexing, Interpreter und Speicher-Einstellungen für große Magento-Projekte optimieren.
Docker-Integration
Xdebug, PHPUnit und Datenbank-Tools sauber mit dem Docker-Setup verbinden.
Team-Konventionen
Inspection-Profile, Code-Style und Live-Templates projektweit vereinheitlichen.
10. Zusammenfassung
Settings Sync: Das Wichtigste auf einen Blick
Settings Sync
Fuer alles Persoenliche gedacht: Keymap, Theme, Plugins und individuelle Templates werden ueber den JetBrains-Account synchronisiert.
.idea-Ordner
Traegt Team-Standards wie Code-Style und Inspection-Profile, wird versioniert und ist damit fuer alle Entwickler gleich.
Trennschaerfe
workspace.xml und tasks.xml gehoeren in die .gitignore, sonst mischen sich lokale UI-Zustaende mit Team-Konfiguration.
Sicherheit
Secrets gehoeren weder in Settings Sync noch in den .idea-Ordner, sondern in lokale Umgebungsvariablen oder private Env-Dateien.