Wordpress dengan Git

21

Saya mengajukan pertanyaan ini karena saya mencari di internet tetapi tidak dapat menemukan solusi yang tepat. Sebenarnya saya ingin solusi di mana banyak pengembang dapat bekerja pada proyek wordpress tunggal tanpa membuat kekacauan satu sama lain bekerja, tetapi seperti yang kita tahu bahwa di wordpress setiap hal dikelola dalam database seperti plugin mana yang aktif dan mana yang tidak.

Jika pengembang menginstal plugin ke proyek lokal mereka daripada bagaimana mereka berkomunikasi satu sama lain sehingga setiap orang harus menginstal plugin atau plugin tertentu itu, dan beberapa miskomunikasi dapat merusak situs orang lain jika setiap pengembang mendorong / menarik kode.

Haruskah kita berbagi database juga, untuk berbagi pengaturan plugin / tema sehingga tidak boleh ada konflik atau konflik kecil antara pengembang.

Terima kasih

Najam-us-Saqib
sumber
5
wp-cli.org akan sedikit membantu dengan alur kerja Anda.
jgraup
1
Jika mungkin beralih ke jekyll atau serupa.
Jens Schauder
Jekyll dipanggang menjadi github, yang jelas bekerja dengan baik dengan git ...
DaveRGP
FWIW, tabrakan dan konflik tidak sepenuhnya dihapus ketika menggunakan sesuatu seperti Git, itu hanya membuat Anda tetap mengatakan konflik keluar dari jalan Anda sampai Anda siap untuk "menggabungkan" mereka.
1
Bisakah semua pengembang berbagi DB yang umum di-host secara publik dan berkomitmen untuk GIT untuk kontrol versi?
MonkeyZeus

Jawaban:

18

Git untuk plugin :

Kemudian, gunakan Git untuk mengelola composer.jsondan perubahan di plugin TGM.

Bagian tersulit adalah menyinkronkan basis data :

Tentunya, kita harus berbagi basis data. Mengkonfigurasi ulang pengaturan / opsi plugin bukan ide yang baik.

Ada banyak plugin , baik gratis maupun premium, yang dapat membantu.

Jika Anda ingin mencoba sesuatu secara manual, gabungkan wp-cli dengan jawaban @Wyck.

MinhTri
sumber
8

Tim saya menghadapi masalah yang sama. Kami menggunakan git untuk versi kode kustom kami sendiri seperti plugin dan tema yang kami tulis. Kami menggunakan Komposer untuk mengelola dependensi seperti plugin yang tidak kami tulis. Kami memeriksa file composer.json dan composer.lock ke git untuk menjaga semua orang tetap sinkron. Setiap pengembang diharapkan untuk menarik cabang master git dan menjalankan composer updateplaypens mereka sesering mungkin agar setiap orang tetap mendapatkan informasi terbaru.

Dalam database, pengembang terutama peduli tentang konfigurasi, dan kami sering menggunakan WP-CLI untuk menjaga konfigurasi tetap sinkron. Sebagai contoh, kami memiliki skrip shell yang menjalankan perintah WP-CLI untuk mengaktifkan atau menonaktifkan plugin berdasarkan per-host; beberapa plugin hanya digunakan pada host pementasan konten kami, misalnya, sehingga skrip dapat dijalankan pada host apa pun dan hanya akan mengaktifkan set yang sesuai pada host tersebut. Beberapa konfigurasi yang terlalu memakan waktu untuk skrip baru didokumentasikan dan direproduksi secara manual jika perlu.

Kami juga memiliki skrip perl yang akan sepenuhnya mengkloning database dari server pementasan konten kami ke QA atau host dev. Para dev dapat menggunakan ini secara berkala jika mereka menginginkan semua konten saat ini, meskipun itu biasanya kurang penting daripada memiliki kode dan konfigurasi. Script melakukan tugas-tugas ini:

  • mySQL dump dari database server pementasan konten, mengubah nama tabel, memuat ke database server target
  • gunakan wp-cli untuk mengubah referensi ke staging server dalam database untuk merujuk ke server target
  • sinkronkan direktori unggahan pada server target dengan unggahan server pementasan konten

Ada beberapa solusi yang menjanjikan untuk benar-benar versi database yang datang dengan cepat. VersionPress dan Mergebot adalah dua yang saya tahu dan mungkin ada yang lain.

Saya menulis lebih banyak detail teknis tentang bagaimana kami mengatur WordPress untuk bekerja dengan git dan Composer di blog saya. Itu perlu dijalankan dengan inti WordPress di direktori sendiri untuk membuat pemisahan bersih antara kode yang ingin kita pertahankan di git dan inti WordPress. Kami memperlakukan WordPress sendiri sebagai dependensi dan mengelolanya dengan Komposer.

spacegrrl
sumber
7

Solusi terbaik yang pernah saya lihat adalah menggunakan Bedrock ( https://roots.io/bedrock/ ).

Jawaban lain untuk pertanyaan ini (Komposer, dan sesuatu untuk mengelola plugin Anda) adalah jawaban yang bagus; tetapi Bedrock menyediakan cara yang sistematis, didukung, didokumentasikan, dan terus ditingkatkan untuk melakukan ini, yang lebih disukai daripada menggulirkan milik Anda sendiri.

Juga, ingat Anda dapat memiliki lebih dari satu git repo - satu untuk tema Anda, satu untuk setiap plugin khusus yang Anda kembangkan, dan kemudian satu 'master' satu untuk instalasi Bedrock / Wordpress itu sendiri.

Chris S
sumber
"Bedrock menyediakan cara yang sistematis, didukung, didokumentasikan, dan terus ditingkatkan untuk melakukan ini, yang lebih disukai daripada menggulung milik Anda sendiri." Dapat mengkonfirmasi, Bedrock hebat! Gunakan dengan Sage (dikembangkan oleh orang yang sama, Roots) dan pengembangan kustom di tim dapat dikelola dengan baik. Masih ada masalah, dan jawaban Dan9 lebih lengkap, tapi saya tidak bisa menyanyikan pujian Bedrock dengan cukup!
samrap
Sebagai pengembang MVC, saya setuju, tetapi jenis pekerjaan yang saya lakukan di situs WordPress sangat berbasis front-end sehingga pengaturan manajemen aset di Sage bernilai praktik buruk global sesekali.
samrap
0

Jika benar-benar perlu bahwa Anda memiliki semua plugin yang sama diinstal bekerja pada tema atau plugin khusus, maka saya akan berbagi database juga.

Kami menggunakan git dan komposer untuk menjaga agar lingkungan pengembangan yang berbeda selalu terbarui. Cukup tarik perubahan terbaru dan jalankan kembali komposer dan Anda siap untuk pergi.

Ben Romijn
sumber
0

Untuk itu pertama-tama kita perlu memahami struktur direktori WordPress. Struktur direktori WordPress tidak ramah pengguna untuk digunakan gitdengannya. Jadi saya akan menyarankan Anda untuk menggunakan ini dengan gitarsitektur yang dimodifikasi ramah. Tidak, tidak perlu panik. Anda tidak harus membuat ini. Ada banyak jenis boilerplate atau sistem WordPress terstruktur di luar sana. Cukup pilih salah satu dari mereka dan mulai coding.

Sekarang sampai pada titik penulisan kode yang terorganisir dengan baik atau kode yang dapat dipertahankan. Kami benar-benar meletakkan kode kami di wp-content\themes\your-themeatau wp-content\themes\your-theme. Jadi di sebagian gitbesar WordPress boilerplate yang ramah, wp-contentbagiannya terpisah. Dan mereka kebanyakan menarik repo WordPress composer. Itu membuat proyek lengkap lebih bersih.

Sinkronisasi plugin adalah bagian penting lainnya. Akan lebih baik jika Anda menginstal plugin Anda melalui composer. Itu membuat kode proyek jauh lebih bersih. Di sini Anda akan mendapatkan gambaran umum cara menginstal plugin WordPress composer.

Sekarang sampai pada bagian yang paling penting, bagaimana cara menyinkronkan basis data. Saya pikir itu bisa lebih mudah dilakukan di bawah 2 cara -

  • Semua pengembang harus menggunakan satu basis data jauh. Dan sering membuat cadangannya.
  • Otomatiskan fasilitas ekspor impor WordPress. Tampaknya rumit, tetapi ternyata tidak. Lakukan saja google, harap Anda bisa melakukannya.

Semoga itu bisa membantu Anda.

CodeMascot
sumber