Selama berbulan-bulan saya telah mencoba merencanakan struktur proyek yang baik untuk menggunakan kontrol versi git untuk pengembangan situs WordPress yang tidak mengorbankan kemampuan untuk memperbarui inti dan plugin melalui dashboard WP, tidak memerlukan struktur direktori yang tidak konvensional (wp -content di luar folder induk WP) dan itu mudah untuk mengelola dan menggunakan seluruh situs web. Saya sudah membaca tentang submodula, subtree, repositori bersarang, dll, dan saya masih mengalami kesulitan untuk menyatukan semuanya dan memilih strategi yang tepat.
Inilah yang saya pikirkan saat ini, dengan pemikiran saya tentang bagaimana saya akan menangani repositori git dalam tanda kurung.
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
Ini membuat saya memiliki beberapa masalah / pertanyaan;
Pembaruan otomatis; Saya suka fitur pembaruan otomatis yang baru, ini berpotensi menghemat banyak waktu dan upaya untuk menjaga situs saya tetap diperbarui dan aman, tetapi tampaknya ia sangat sulit melacak perubahan kode dengan git. Apakah ada cara untuk melacak perubahan kode saya sementara masih memungkinkan inti WordPress untuk memperbarui otomatis?
Apakah memiliki subtree di bawah repo inti WordPress mencegah saya menggunakan git untuk menggabungkan pembaruan inti baru atau mendorong perubahan saya kembali ke repo inti WordPress (jika saya pernah memutuskan saya ingin menjadi kontributor inti)?
Untuk plugin yang tidak memiliki repo git publik, mengabaikannya sama sekali akan menimbulkan masalah karena tidak dapat dengan cepat mengkloning seluruh situs pada server baru tanpa menyalin file secara manual ke server. Ini juga menyebabkan masalah jika saya ingin membuat perubahan pada kode plugin yang tidak dilacak dan bisa dengan mudah hilang dalam peningkatan plugin.
Jadi, untuk meringkas, apa itu git + WordPress setup yang baik yang menghindari masalah ini? Saya akan menghargai tanggapan Anda tentang struktur proyek yang saya usulkan. Cara apa pun yang Anda dapat membantu saya meningkatkan ini, akan sangat dihargai!
PS, jika ada forum yang lebih baik untuk diskusi ini, tunjukkan saya di sana.