Seit Monaten versuche ich, eine gute Projektstruktur für die Verwendung der Git-Versionskontrolle für die Entwicklung von WordPress-Websites zu entwickeln, die nicht die Möglichkeit einbüßt, Kern- und Plug-ins über das WP-Dashboard zu aktualisieren, und keine unkonventionelle Verzeichnisstruktur (wp -inhalt außerhalb des übergeordneten WP-Ordners) und das ist einfach zu verwalten und ganze Websites bereitzustellen. Ich habe über Submodule, Teilbäume, verschachtelte Repos usw. gelesen und es fällt mir immer noch schwer, alles zusammenzufügen und die richtige Strategie zu wählen.
Hier ist, was ich gerade denke, mit meinen Gedanken darüber, wie ich mit Git-Repos in Klammern umgehen würde.
root (main project repo)
|-- wordpress (public git repo added as subtree)
| |-- wp-content
| | |-- plugins
| | | |-- my-custom-plugin (git repo added as subtree)
| | | |-- other-plugin-with-git-repo (git repo added as subtree)
| | | +-- other-plugin-without-git-repo (ignored/untracked)
| | |-- themes
| | | |-- my-custom-theme (git repo added as subtree)
| | | |-- other-theme-with-git-repo (git repo added as subtree)
| | | +-- other-theme-without-git-repo (ignored/untracked)
| | +-- uploads (ignored/untracked)
| |-- wp-admin
| +-- wp-includes
|-- wp-config.php (ignored/untracked)
+-- other-files.txt
Dies lässt mich mit mehreren Problemen / Fragen zurück;
Automatische Updates; Ich mag die neue Funktion für automatische Updates. Sie könnte möglicherweise viel Zeit und Mühe sparen, um meine Websites auf dem neuesten Stand zu halten und sicher zu halten, aber es scheint, als würde sie das Nachverfolgen von Codeänderungen mit git erleichtern. Gibt es eine Möglichkeit, meine Codeänderungen zu verfolgen, während WordPress Core weiterhin automatisch aktualisiert wird?
Verhindert das Vorhandensein von Teilbäumen unter dem WordPress-Core-Repo, dass ich git verwende, um neue Core-Updates einzufügen, oder das Zurückschreiben meiner Änderungen in den WordPress-Core-Repo (falls ich jemals entscheiden würde, ein Core-Mitarbeiter zu werden)?
Bei Plugins ohne öffentliches Git-Repo führt das vollständige Ignorieren dazu, dass die gesamte Site auf einem neuen Server nicht schnell geklont werden kann, ohne dass Dateien manuell auf den Server kopiert werden müssen. Es verursacht auch ein Problem, wenn ich den Code dieses Plugins ändern möchte. Diese Änderungen werden nicht nachverfolgt und können bei einem Plugin-Upgrade leicht verloren gehen.
Zusammenfassend lässt sich sagen, was ist ein gutes git + WordPress-Setup, das diese Probleme vermeidet? Ich würde mich über Ihr Feedback zu meiner vorgeschlagenen Projektstruktur freuen. Jede Art und Weise, wie Sie mir helfen können, dies zu verbessern, wäre sehr dankbar!
PS, wenn es ein besseres Forum für diese Diskussion gibt, weisen Sie mich bitte dorthin.