Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Plugins

Penerbitan WordPress plug-in dengan Git

by
Read Time:13 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Fodal Fadul (you can also view the original English article)

Jika Anda sudah punya plug-in host pada repositori WordPress maka Anda akan cukup akrab dengan SVN dan beberapa perintah yang. Dalam tutorial ini saya akan menunjukkan Anda bagaimana Anda dapat menggunakan Git, sistem kontrol versi lain dipopulerkan oleh GitHub, untuk menerbitkan dan mempertahankan plug-in.


Apa yang dimaksud dengan Git?

Git dengan SVN adalah contoh baik dari sistem kontrol versi. WordPress' repositori menggunakan kedua (jika Anda memiliki plug-in host di WordPress Anda akan akrab dengan 'check in' untuk membuat perubahan ke repositori ini). Mereka berdua memungkinkan Anda untuk melacak perubahan pada kode Anda, tetapi ada perbedaan besar antara mereka mengenai bagaimana mereka melakukan ini.

SVN bergantung pada satu "repositori pusat" kode (dalam konteks kami: repositori plug-in WordPress). Setiap kali Anda ingin mengedit plug-in, Anda perlu membuat salinan lokal, membuat perubahan dan kemudian 'check in' perubahan ke repositori WordPress.

Git adalah sistem kontrol versi desentralisasi. Daripada memiliki hanya salinan lokal dari plug-in-Anda memiliki seluruh tiruan dari repositori Anda plug-in, lengkap dengan semua perubahan. Repositori sekarang ada dalam dirinya sendiri pada komputer Anda. Anda dapat melakukan dan melacak perubahan, kembali perubahan atau 'cabang' plug-in dari arah yang berbeda semua pada komputer lokal Anda. Hanya setelah Anda senang untuk memperbarui plug-in, Anda kemudian mendorong perubahan Anda ke repositori WordPress Anda untuk membuat mereka publik.

Dalam tutorial ini saya mengasumsikan bahwa Anda sudah punya plug-in host di WordPress plug-in repositori, atau setidaknya Anda sudah permintaan Anda hosting disetujui. Jika Anda tidak yakin bagaimana untuk mendapatkan plug-in di-host oleh WordPress, saya sarankan Anda membaca artikel kami tentang cara untuk mempublikasikan ke repositori plugin.


Apakah keuntungan menggunakan Git lebih SVN?

Ada banyak argumen bagi dan melawan menggunakan Git melalui SVN (juga sebagai desentralisasi sistem kontrol versi secara umum). Banyak dari ini berasal dari cara yang berbeda pada dasarnya Git dengan SVN melacak perubahan. Sangat baik, analisis mendalam Git dengan SVN dapat ditemukan dalam CodeForest's Git vs SVN artikel, tetapi untuk WordPress pengembang:

  • Off-line akses Anda dapat membuat dan melacak commit pada pribadi Anda sendiri 'pengembangan repositori'. Hanya ketika Anda ingin membuat perubahan umum Anda memerlukan akses ke repositori WordPress.
  • Setelah Anda mempelajarinya, Git jauh lebih mudah digunakan-artikel ini akan membawa Anda melalui dasar alur kerja Anda akan perlu untuk membuat perubahan dan memperbarui mereka pada repositori. Aku sudah terhubung ke beberapa sumber daya di bagian bawah yang memberikan informasi lebih lanjut tentang menggunakan Git.
  • GitHub-Mari kita hadapi itu, ini adalah bagaimana sebagian besar dari kita telah mendengar tentang Git. Kemampuannya untuk mendorong 'Coding sosial' dimungkinkan dari sifat desentralisasi Git. Anda dapat menyimpan salinan dari plug-in pada GitHub, mendorong masyarakat untuk berpartisipasi dan membuat perbaikan atau ekstensi yang Anda dapat menyertakan. Umumnya, itu adalah ide yang baik untuk mengekspos plug-in untuk pengembang lain.
  • Mudah 'bercabang' plug-in-Anda dapat membuat 'percobaan' cabang di salinan setempat Anda untuk menguji fitur-fitur baru yang tersedia, kemudian jika mereka bekerja keluar, menggabungkan mereka kembali pada saat tiba waktunya untuk mempublikasikan rilis berikutnya dari plug-in.

Salah satu kelemahan dari menggunakan Git, semakin itu bermain baik dengan SVN repositori. Hal ini tidak benar-benar bahwa sulit terima kasih kepada git svn, dan artikel ini di sini untuk menuntun Anda melalui itu.


Langkah 1 Download Git

Jika Anda belum melakukannya, Anda akan ingin menginstall Git. Bagaimana menginstal Git diliputi cukup baik dalam komunitas Git buku dan buku Pro Git (keduanya sangat baik sumber daya jika Anda baru ke Git). Bagaimana menginstal Git akan tergantung pada sistem operasi Anda, seperti yang akan program GUI apa tersedia untuk Anda. Dalam tutorial ini saya akan melakukan segala sesuatu melalui baris perintah- dan saya mendorong Anda untuk melakukan hal yang sama. Pada akhir artikel saya akan menyarankan beberapa program GUI yang dapat Anda gunakan, tetapi biasanya, saya hanya menggunakannya untuk membantu memvisualisasikan cabang-cabang dari repositori.


Langkah 2 klon Anda Plug-in di WordPress host repositori

Seperti dijelaskan sebelumnya, dengan Git Anda tidak 'check out' salinan plug-in – Anda clone repositori, lengkap dengan sejarah perubahan yang dibuat, dan semua cabang dan tag. Langkah 1 adalah klon Anda plug-di itu host WordPress repositori. Sebagai contoh saya akan menerbitkan 'tipe Arsip Link posting' plug-in berdasarkan tutorial sebelumnya. Begitu (setelah Anda sudah diterima ke repositori WordPress) membuka antarmuka baris perintah Anda, dan navigasi ke mana Anda ingin menyimpan versi lokal dari plug-in. Aku akan meletakkannya di dalam sebuah folder bernama 'Plugins'. Setelah ada kami ingin memberitahu Git mana menemukan kami plug-in. Pada saat penulisan ada hampir 20.000 plug-in host di WordPress repositori, dan lebih dari 500.000 revisi. Kami tidak ingin menunggu Git pukat melalui masing-masing dari mereka untuk menemukan kami plug-in. Jadi pertama-tama, kita menemukan apa revisi mulai kami plug-in di (kami ingin ini adalah seluruh sejarah). Untuk melakukan hal ini kita mendapatkan log pertama plug-in (saat itu awalnya ditambahkan ke repositori):

Itu akan berpikir untuk sementara dan kemudian Anda harus melihat sesuatu seperti ini:

Jumlah tersebut pertama, '520657' untuk plug-in, adalah revisi pertama. Kita akan menggunakannya dalam perintah berikutnya yang memberitahu Git untuk mengkloning kami plug-di itu sejarah. Mengganti XXXXXX dengan nomor revisi.

'-S' memberitahu Git untuk mengharapkan tata letak standar (Tag, batang, Cabang) SVN repositori. '--No-meminimalkan-url' berhenti terlihat di luar plug-in folder. Memastikan ianya tidak hilang. Jika Anda meninggalkan keluar Anda bisa berakhir menyalin seluruh WordPress plug-in repositori. -RXXXXXX memberitahu Git revisi apa untuk mencari. Jika Anda meninggalkan yang keluar Git akan memiliki pencarian melalui seluruh sejarah dari repositori. Itu adalah lebih dari 500.000 revisi. Saya meninggalkan ini keluar sekali dan butuh waktu sekitar dua jam. Dengan itu, itu hanya harus mengambil beberapa menit.

Setelah selesai, Anda harus menemukan bahwa ia telah menciptakan sebuah folder bernama 'Anda-plug-in-name' di dalam folder 'Plugins'. Mari kita menjelajahi sedikit. Menavigasi ke folder 'Anda-plug-in-name' dan menjalankan perintah untuk melihat apa 'cabang' ada:

Ini akan menampilkan semua cabang, lokal dan remote. Cabang hanya lokal harus Master (asterisk menandakan bahwa ini adalah cabang Anda). Branch(es) lainnya adalah 'Bagasi' dan, jika Anda memilikinya, cabang untuk setiap tag (SVN memperlakukan Tag sebagai cabang, tapi Git sedikit pintar dari itu).

Akan Anda 'folder lokal', ' plugins/Anda-plugin-nama', Anda harus melihat file plug-in (jika ada). Sebelum membuat atau mengedit file di sana, kita akan membuat cabang terpisah untuk bekerja pada.

Update: Perintah di atas telah diperbarui karena masalah dicatat di komentar di bawah ini oleh Neerav dan John Eckman. Kode di atas sekarang mencerminkan Stephen Harris rekomendasi.


Langkah 3 (opsional) mendorong GitHub

Salah satu manfaat menggunakan Git adalah bahwa Anda dapat dengan mudah menjaga sebuah versi dari plug-in pada GitHub. Hal ini membuat plug-in lebih mudah diakses oleh pengembang lain, yang mungkin menyarankan perbaikan atau bahkan membuat modifikasi sendiri yang Anda dapat menarik ke dalam repositori Anda sendiri. Jika Anda sudah diatur dengan GitHub, Anda mungkin saat ini ingin mendorong plug-in ke account Anda. Untuk melakukannya, pertama membuat sendiri repositori baru di akun GitHub, dan kemudian menambahkan ini sebagai cabang berjarak ke repositori lokal:

'-user-name Anda' mengacu pada nama pengguna GitHub dan 'Anda-repo-name' mengacu pada nama repositori yang Anda buat pada GitHub. Kemudian Anda hanya mendorong repositori lokal:


Langkah 4 mengedit Plug-in: Garis besar alur kerja

Kami akan membuat cabang baru 'bekerja'. Itu adalah di dalam cabang ini bahwa kami akan mengubah kami plug-in, membuat perubahan dan menambahkan fitur dll. Ini berarti 'Master' cabang dijaga keadaan aslinya. Hal ini memungkinkan kita untuk beralih kembali ke Master cabang, dan bercabang lagi. Secara khusus, misalnya merupakan bug besar ditemukan di plug-in sementara Anda bekerja pada beberapa fitur baru di cabang 'pekerjaan' Anda. Anda dapat beralih kembali ke Anda sedang cabang 'master' Anda (yang tidak termasuk salah satu fitur yang Anda sedang bekerja pada), melakukan perbaikan untuk bug dan kemudian mendorong bahwa ke repositori WordPress. Anda dapat kemudian beralih kembali ke cabang pekerjaan Anda dan terus mana Anda tinggalkan. (Catatan: Git tidak membuat salinan file-akan selalu ada satu set file dalam folder lokal. Apa yang berisi file-file ini akan tergantung pada apa cabang Anda pada.)

Pada kenyataannya, itu adalah ide yang baik untuk membuat cabang untuk setiap fitur baru yang Anda menambahkan ke plug-in. Setelah selesai Anda hanya bergabung ini kembali ke master branch. Jika hal ini menyebabkan 'konflik', Anda akan diminta untuk menyelesaikan ini secara manual.

Pertama membuat cabang disebut 'bekerja':

Kemudian 'check out' (pergi ke) cabang 'pekerjaan':

Sebuah pesan akan memberitahu Anda bahwa Anda telah beralih ke cabang 'bekerja'. Sekarang menggunakan editor teks favorit Anda untuk membuka Anda plug-in yang file dalam folder lokal (atau buat mereka jika tidak ada belum). Setelah Anda membuat beberapa Anda mungkin ingin melihat apa file Anda telah berubah. Anda melakukan ini dengan perintah sederhana:

Ini akan memberikan daftar perubahan file dilacak dan tidak terlacak. Mungkin ada file Anda tidak ingin Git untuk repot-repot pelacakan (seperti file-file sementara), tetapi jika file baru telah ditambahkan ke folder Anda harus memberitahu Git untuk melacak mereka. Anda dapat melakukan ini dengan perintah:

Saya telah membuat dua file ' post-tipe-Arsip-links.php' dan 'metabox.js' di folder lokal saya, jadi saya telah menambahkan mereka untuk memberitahu Git untuk melacak mereka. Anda harus memastikan bahwa Anda melacak readme file.

Anda juga dapat melihat perubahan sejak terakhir Anda commit (ini adalah dimana GUI program menjadi sangat berguna)

Sekali Anda ingin melakukan perubahan ke repositori lokal:

memberikan pesan (rinci) perubahan yang terkandung dalam komit.

Dalam proses pembuatan perubahan Anda yang dapat (dan harus) melakukan sesering mungkin- tapi dalam cara yang logis, sebaiknya satu commit untuk setiap hal yang Anda lakukan. Anda harus memastikan bahwa ada tidak ada kesalahan yang jelas dalam commit Anda baik. 'Melepas' komit cepat dan tanpa rasa sakit: Anda melakukan hal ini dengan melakukan commit lagi yang membalikkan sebelumnya:

(Anda akan diminta untuk pesan untuk menggambarkan commit ini.)


Langkah 5 melakukan repositori WordPress

Misalkan Anda sekarang berada dalam posisi di mana Anda ingin mendorong semua perubahan Anda ke repositori SVN. Sebelum melakukan ini, kita perlu telanjang sesuatu dalam pikiran. Git mendorong Anda untuk melakukan sering, dan itu adalah praktik yang baik untuk melakukan jadi... untuk pembangunan. Namun, repositori plug-in WordPress Anda ada untuk distribusi. Itu tidak membutuhkan setiap satu commit. Pada kenyataannya, itu benar-benar tidak menginginkannya, seperti Otto (WordPress inti kontributor) memperingatkan:

"Jika saya menangkap Anda di itu [mendorong setiap commit secara terpisah], maka aku akan melarang Anda dari WordPress.org. SVN hanya membutuhkan versi bekerja akhir Anda berkomitmen untuk itu, tidak seluruh sejarah dari ratusan perubahan yang Anda buat menggunakan Git. Ratakan satu commit perubahan Anda."

Untuk menghindari hal ini, ketika kami siap untuk mendorong ke repositori WordPress, kami menggabungkan semua komit ke dalam satu commit. Ada beberapa cara untuk melakukan hal ini. Kami akan menggabungkan (dan secara bersamaan squash) perubahan kami dari kerja cabang ke cabang master kami. Maka semua perubahan kami muncul sebagai satu commit di cabang master. Kami kemudian menghapus branch pekerjaan tersebut dan mendorong Cabang master ke kami plug-in yang SVN trunk.

Pertama, kami ingin beralih kembali ke Master cabang:

Kemudian squash dan menggabungkan cabang kerja berubah menjadi master:

Jika perubahan yang telah dibuat ke branch master, mungkin ada konflik dalam penggabungan. Anda akan diminta untuk secara manual menyelesaikan konflik ini sebelum penggabungan dapat menyelesaikan. Setelah bergabung, mengkomit perubahan (satu commit ini akan berisi semua komit dari cabang kerja):

Akhirnya, kami menghapus cabang kerja

Jika Anda memiliki beberapa cabang yang Anda inginkan untuk bergabung dalam, maka Anda dapat melakukan ini untuk masing-masing dari mereka. Ada metode alternatif, yang saya tidak akan menutupi, dari meratakan riwayat Anda (seperti interaktif rebasing).

Pada titik ini Anda bisa, jika Anda ingin, mendorong perubahan terbaru Anda ke akun GitHub:

Untuk mendorong ke repositori WordPress, kita pertama pastikan repositori lokal kami 'up to date':

Git kemudian akan pergi dan mengambil repositori subversion Anda dan menggabungkan perubahan sana dengan perubahan yang kita baru saja dibuat. Biasanya, tidak boleh ada perubahan ke repositori WordPress, sehingga Anda harus melihat pesan: saat ini Cabang master up-to-date.

Sekarang kita dapat mendorong perubahan ke repositori WordPress

Git kemudian mungkin meminta Anda untuk kredensial WordPress.org. Setelah memasuki perubahan Anda akan dikomit ke repositori WordPress. Segera Anda akan menerima e-mail dari repositori WordPress, menginformasikan Anda commit.


Langkah 6 menandai rilis baru

Saat ini, perubahan tersebut akan duduk di trunk. Bagaimana jika kita ingin menandai rilis baru kami plug-in? Ketika membuat versi berikutnya untuk plug-in Anda harus memperbarui ReadMe file, sehingga tag stabil menunjuk ke versi baru Anda (mengatakan ' 2.0'). Anda juga harus diperbarui Anda plug-in yang informasi header dalam Anda berada Anda-plug-di-name.php file. Jika Anda lupa untuk melakukan ini, jalankan melalui prosedur di atas, setelah membuat perubahan-perubahan tersebut.

Setelah 'Bagasi' Anda sepenuhnya up to date (termasuk informasi versi terbaru), kita hanya kemudian perlu membuat tag baru dalam repositori WordPress:

Ini salinan segala sesuatu di Bagasi Anda ke dalam tag/2.0 (apa yang Anda biasanya capai di SVN dengan svn cp batang Tag/2.0).

Jika Anda ingin menandai rilis di repositori lokal:


Langkah 7 (opsional) menandai rilis baru pada GitHub

Mirip dengan apa yang kami lakukan dengan repositori WordPress, pastikan bahwa repositori kami setuju, kemudian mendorong perubahan dan tag kami:


Sumber-sumber yang berguna untuk perintah Git

  • Git referensi (memiliki bagian baik pada 'Bagaimana untuk berpikir seperti Git')
  • Git masyarakat buku
  • Pro Git buku
  • Git siap (kurang dari panduan, lebih kumpulan 'cuplikan')
  • SVN untuk Git kecelakaan kursus (membantu jika Anda menggunakan SVN untuk sementara)
  • Git Magic (pengenalan yang ramah ke Git)

Akhirnya ada beberapa Git 'cheat sheets' yang mungkin akan berguna: di sini dan di sini.


Program GUI Git

Windows

  • TortoiseGit (program populer yang terintegrasi dengan Windows Explorer)
  • msysGit

Mac

  • Git Tower
  • GitHub untuk Mac (dari orang-orang yang membawa Anda ke GitHub)

Linux / Cross Platform

  • GitG (ini adalah apa yang saya gunakan)
  • QGit
  • Git Cola (Cross Platform)
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.