Verbinden Sie Ihr eigenes GitHub-Konto mit einer Website, und wir halten beide Seiten in beiden Richtungen synchron. Es ist kostenlos, es bleibt deaktiviert, bis Sie es einschalten, und wir übertragen Commits ausschließlich in ein Repository auf einem Konto, das Ihnen gehört – niemals in eines von uns.
Was synchronisiert wird
Alles, was Sie an den Dateien Ihrer Website ändern, wird zu einem Commit in Ihrem Repository, ganz gleich, wie Sie es geändert haben: über den Dateimanager, per SFTP, über den WordPress-Theme-Editor oder in einer SSH-Sitzung. Sie müssen uns nicht benachrichtigen – wir vergleichen Ihre Website mit ihrem letzten Commit und übertragen den Unterschied per Push.
In die andere Richtung landet ein Push in Ihren verbundenen Branch direkt auf der Website.
Was wir niemals committen
Ihre wp-config.php ist ausgeschlossen, ganz bewusst und dauerhaft. Sie enthält Ihr Datenbankpasswort sowie Ihre Authentifizierungs-Salts, und diese gehören nicht in ein Repository – nicht einmal in ein privates, da Git den Verlauf für immer aufbewahrt.
Ebenfalls ausgeschlossen: .env-Dateien, Schlüssel und Zertifikate, Ihr Uploads-Ordner, Caches sowie node_modules. Ein Repository ist der Quellcode Ihrer Website, kein Backup. Mediendateien gehören in Ihre Backups, wo sie bereits aufbewahrt werden; würden sie hier abgelegt, würde dies jeden Push verlangsamen und jede Änderung unlesbar machen.
Was passiert, wenn beide Seiten geändert wurden
Das ist die entscheidende Frage. Nehmen wir an, Sie bearbeiten eine Datei im Dateimanager, und währenddessen überträgt eine Kollegin oder ein Kollege eine Änderung per Push in dasselbe Repository.
Wir stoppen. Wir führen keinen Merge durch und überschreiben niemanden. Auf dem Deploy-Tab der Website erscheint der Hinweis „Ihr Repository enthält Änderungen, die wir noch nicht kennen“, der Commit wird benannt, den Sie prüfen müssen, und das System wartet auf Sie. Während des Wartens geht auf keiner Seite etwas verloren – Ihre Bearbeitung befindet sich weiterhin auf der Website, der andere Commit weiterhin im Repository.
Sie wählen dann aus:
- Dateien dieser Website behalten – wir legen Ihre Version über deren Version. Die entsprechenden Commits bleiben im Verlauf erhalten; nichts wird gelöscht.
- Repository verwenden, Website-Änderungen verwerfen – die Version aus dem Repository wird auf die Website angewendet, und die Änderungen, die Sie hier vorgenommen hatten, werden verworfen. Diese Option ist destruktiv, weshalb sie einen bewussten Klick erfordert und niemals automatisch in Ihrem Namen ausgeführt wird.
Es gibt ganz bewusst keine Option für einen „automatischen Merge“. Ein von uns durchgeführter Merge würde auf einer Live-Website eine Datei erzeugen, die keiner von Ihnen geschrieben hat, ohne dass einer von Ihnen sie zuvor gesehen hätte.
Warum die Synchronisierung stoppen könnte
- Sie haben Ihr eigenes GitHub-Konto nicht verbunden. Der Schalter bleibt ausgeschaltet, bis Sie dies tun.
- Das System wartet auf Sie. Siehe oben – ein Stopp hebt sich nicht von selbst auf.
- Ihr Konto ist nicht ordnungsgemäß geführt. Die Synchronisierung wird pausiert und setzt sich automatisch fort, sobald die Abrechnung auf dem neuesten Stand ist. Es geht nichts verloren.
Der Deploy-Tab zeigt die letzten Synchronisierungen an, einschließlich derer, bei denen sich nichts geändert hatte. Wenn diese Liste leer ist und die Synchronisierung aktiviert ist, kann das verbundene Konto höchstwahrscheinlich nicht in das Repository schreiben – überprüfen Sie die Zugriffsrechte und verbinden Sie es erneut.
Auswählen, was synchronisiert wird
Standardmäßig wird die gesamte Website synchronisiert. Bei einer WordPress-Website ist das normalerweise nicht das, was Sie möchten: Es umfasst jede Datei des WordPress-Core, die Sie weder geschrieben haben noch bearbeiten werden. Setzen Sie „Nur diesen Ordner synchronisieren“ auf Ihr Theme – beispielsweise wp-content/themes/my-theme – und der Rest bleibt unberührt.