Pengantar Git

Diterbitkan: 2022-06-30

Tidak masalah jika Anda sedang membangun situs web baru, mengembangkan tema atau plugin, atau menyiapkan integrasi berkelanjutan dan strategi penerapan, Anda akan bekerja dengan kode.

Di bawah setiap situs web, ada kode yang dieksekusi — apakah Anda menggunakan WordPress, WooCommerce, Drupal, Magento, NextJS, atau bahkan HTML kode tangan. Ada kumpulan file yang diperlukan untuk membuat setiap halaman merender dan menampilkan konten ke dunia.

Apa yang Anda temukan dengan cepat adalah bahwa Anda memerlukan cara untuk melacak perubahan kode dari waktu ke waktu. Anda perlu mengetahui perubahan apa yang ada di versi terbaru file apa pun, dan siapa yang membuat setiap perubahan.

Di sinilah Git masuk. Teruslah membaca untuk mempelajari tentang Git, bekerja dengan repositori Git jarak jauh, dan banyak lagi.

Memahami Git

Git adalah sistem kontrol versi yang memungkinkan pengembang, dan siapa pun yang bekerja dengan file, untuk dengan mudah membuat dan menyimpan versi perubahan mereka, melihat riwayat perubahan tersebut, dan membagikan perubahan tersebut antara perangkat dan sistem, sambil menyediakan cara untuk membatalkan perubahan tersebut jika terjadi kesalahan.

Sejarah Singkat

Jauh di tahun 2005, tim pengembang sedang membuat proyek bernama Linux, sistem operasi sumber terbuka dan gratis. Mereka membutuhkan cara untuk mengkomunikasikan perubahan dengan mudah di antara ratusan kontributor. Awalnya, mereka telah menyebarkan tambalan individu yang berisi kode yang diperbarui, tetapi ini terbukti bermasalah di banyak bidang, terutama ketika menentukan apa yang "benar" dan versi terbaru dari serangkaian perubahan tertentu.

Frustrasi oleh masalah ini, proyek Linux membuat Linus Torvald menerapkan ide yang agak baru untuk sebuah proyek untuk berbagi seluruh basis kode antara pengembang dan mengambil "snapshots" dari perubahan mereka, yang disebut komit, yang dapat dibagikan dan digabungkan dengan salinan lain dari kode, di mana saja di dunia. Segera ini membantu dengan komunikasi, karena semua perubahan proyek dapat dilihat sebagai satu sejarah.

Metode untuk menangkap snapshot ini adalah Git, yang dengan cepat mengambil kehidupannya sendiri dan telah dikembangkan secara independen dari proyek Linux sejak saat itu.

Grafik Perubahan

Secara konseptual, Anda dapat menganggap Git sebagai grafik node, di mana setiap node adalah snapshot dari keseluruhan proyek pada suatu waktu. Buku Git, di atas git-scm.com menguraikan struktur snapshot.

Git menyimpan data sebagai snapshot proyek dari waktu ke waktu

Rantai snapshot ini membuat grafik dari waktu ke waktu, dengan versi terbaru di bagian depan, atau di bagian atas riwayat perubahan Anda. Setiap snapshot disebut sebagai "komit" di Git.

Berikut ini sekilas tampilan proyek Git jika Anda menempatkan perubahan terbaru di bagian atas grafik. Catatan — contoh ini menggunakan GitKraken Git GUI untuk memvisualisasikan grafik.

Contoh grafik git

Membangun Grafik Git

Git membuat grafik perubahan ini, juga dikenal sebagai riwayat Git Anda, melalui proses melakukan perubahan. Namun, sebelum Anda dapat mengkomit perubahan, Anda perlu memberi tahu Git secara spesifik apa yang ingin Anda tambahkan ke snapshot itu, atau komit sebagaimana dirujuk dengan benar di Git.

Saat bekerja secara lokal, semua perubahan yang Anda simpan di proyek Anda ada di "Direktori Kerja" Anda. Git dapat melihat perubahan tersebut, tetapi belum mengetahui perubahan mana yang ingin Anda komit. Anda perlu memberi tahu Git secara eksplisit perubahan mana yang ingin Anda komit dengan menggunakan perintah yang disebut “git add” untuk menambahkan file spesifik tersebut ke “staging area” Git.

Setelah Anda memiliki perubahan file yang ingin Anda komit ke grafik snapshot proyek, Anda kemudian dapat menggunakan perintah "Git commit" untuk membuat snapshot itu secara permanen ke dalam grafik.

Git menambahkan dan melakukan langkah-langkah

Bergerak Kembali dalam Waktu

Salah satu keuntungan Git dan memiliki seluruh riwayat proyek Anda tersedia adalah Anda dapat mundur dan membatalkan setiap dan semua perubahan kapan saja.

Jika komit terakhir yang Anda buat merusak sesuatu, atau Anda berubah pikiran tentang apa yang Anda lakukan, Anda dapat melakukan "Git revert" untuk mengembalikan komit Git. Ini membuat komit baru pada grafik yang hanya membatalkan perubahan yang baru saja Anda buat.

Jika Anda ingin melompat kembali ke masa lalu dan membuatnya tampak seperti Anda tidak pernah membuat komitmen, Anda dapat menggunakan "Git reset" untuk melakukan ini.

Kekuatan Percabangan dan Penggabungan di Git

Salah satu fitur paling hebat yang diberikan Git kepada kita adalah kemampuan untuk membuat realitas alternatif paralel. Tidak benar-benar.

Karena Anda membuat grafik komit dari waktu ke waktu, Anda dapat memilih untuk membuat baris komit paralel, yang disebut cabang, dari titik mana pun dalam riwayat Anda. Cabang Git yang baru dibuat tidak bergantung pada riwayat utama, artinya Anda bebas membuat perubahan apa pun yang Anda inginkan dan itu tidak akan memengaruhi pekerjaan Anda yang lain. Garis waktu utama juga merupakan cabang dan paling sering disebut cabang "utama" atau "master". Cabang dan cabang baru selain cabang utama biasanya disebut sebagai “cabang unggulan”.

Setelah Anda membuat perubahan pada cabang fitur Anda, Anda dapat menerapkan semua perubahan ke cabang utama dengan melakukan penggabungan Git.

Ada keuntungan besar untuk bekerja dengan cara ini. Cabang fitur mengisolasi perubahan kode, jadi jika Anda melakukan kesalahan, Anda dapat yakin bahwa cabang utama aman. Bekerja di cabang juga membebaskan cabang utama jika Anda perlu menerapkan pembaruan atau perbaikan keamanan tanpa mengganggu pekerjaan pengembangan yang sedang berlangsung.

Penggabungan Git juga memungkinkan Anda untuk menarik perubahan dari cabang utama ke cabang fitur. Ini memberi Anda kemampuan untuk memastikan pembaruan yang dibuat ke cabang utama akan tetap berfungsi dengan perubahan yang Anda usulkan sebelum Anda mencoba menggabungkannya dengan "utama."

Jika Anda bekerja dengan tim, strategi percabangan Git dapat memastikan bahwa tim Anda dapat menguji perubahan secara menyeluruh sebelum mereka mencapai produksi dan memberikan cara langsung untuk mengelola prosesnya.

Bekerja Dengan Repositori Jarak Jauh di Git

Salah satu tujuan utama Git adalah mempermudah berbagi kode dengan orang-orang di seluruh dunia. Dibangun ke dalam Git adalah gagasan tentang repositori jarak jauh.

Repositori Git adalah seluruh folder proyek tempat Anda menyimpan pekerjaan Anda dan itulah yang dilacak Git dari waktu ke waktu. Setiap repositori dapat dikloning menggunakan perintah kloning Git, dan dibagikan dalam jumlah tak terbatas, membuat Git sangat skalabel.

Aspek lain yang membuat Git sangat skalabel adalah jika Anda mengubah dokumen, Anda tidak perlu menyimpan salinan dokumen yang sama sekali baru. Perubahan disimpan sebagai paket kecil informasi yang disebut sebagai "delta", dan hanya baris file yang dimodifikasi secara individual dan sedikit data tentang perubahan yang perlu disimpan atau dibagikan oleh Git. Delta sangat ringan, seringkali hanya berukuran beberapa byte. Misalnya, jika Anda mengubah satu baris dalam dokumen 100KB, delta hanya akan menjadi 20 byte atau lebih.

Untuk menjaga semuanya tetap sejalan dan konsisten di semua salinan repositori, Anda hanya perlu menentukan salinan mana, yang terletak di komputer mana, yang merupakan salinan "sebenarnya" dari proyek, dan kemudian pastikan komit Anda membuatnya menjadi salinan itu.

Ini bekerja dengan cara lain juga. Saat berkolaborasi dengan orang lain, Anda dapat menarik perubahan mereka ke salinan lokal repositori Anda untuk memastikan salinan lokal proyek Anda mutakhir.

Model git bekerja dengan repositori jarak jauh

Ada sejumlah perusahaan yang membuat kolaborasi pada repositori jarak jauh menjadi sangat sederhana dan mudah dikelola. Platform seperti GitHub, GitLab, dan BitBucket menawarkan hosting repositori Git online dan alat kolaborasi. Ada jutaan repositori Git online yang dikelola oleh jutaan pengembang, dan Git melacak setiap sumber kebenaran, tidak peduli berapa banyak orang yang berkolaborasi.

Apa yang Tidak Harus Disimpan di Git

Mari kita bicara tentang apa yang mungkin tidak boleh Anda lakukan dengan Git. Meskipun Git luar biasa dalam berbagi kode dan melacak perubahan dari waktu ke waktu, ada beberapa pekerjaan yang tidak cocok untuk model tersebut. Untungnya, Git memberi kita cara praktis untuk menyuruhnya mengabaikan sesuatu, yang disebut file ".gitignore".

Jika ada file “.gitiginore”, Git akan memeriksanya untuk melihat apakah ia harus mengawasi item tersebut sama sekali. Di dalam ".gitiginore" Anda dapat membuat daftar nama file individual, seluruh direktori, atau seluruh jenis file. Misalnya, jika Anda ingin mengecualikan semua file .png dan .jpg dan seluruh folder "wp-content/uploads", di file ".gitiginore" Anda cukup menulis:

 *.png *.jpg wp-content/uploads

Mengapa Mengecualikan File Media Dari Git?

Git menyimpan snapshot dari sebuah proyek dan hanya melewati "delta". Tetapi jika file yang dimaksud adalah "gumpalan" data, seperti gambar, video, atau file biner lainnya, setiap perubahan file akan membuat gumpalan data yang sama sekali baru. Git kemudian perlu mengingat status blob lama dan blob baru, menambahkan banyak ukuran yang tidak perlu ke repositori. Ini menumpuk dari waktu ke waktu, dan repositori segera menjadi berat saat Anda kehilangan manfaat ringan dari Git.

Percaya atau tidak, Anda mungkin tidak ingin melacak perubahan di inti WordPress itu sendiri. Ada beberapa alasan untuk ini.

Pertama, ada pepatah lama dengan CMS apa pun: "Jangan meretas inti!" Seharusnya tidak ada yang Anda ubah di inti WordPress yang perlu dilacak. Pembaruan apa pun harus berasal dari WordPress itu sendiri dan jika Anda menginginkan versi sebelumnya, itu mudah ditentukan saat Anda menginstalnya. Anda benar-benar dapat menyimpan seluruh instalasi WordPress di Git, tetapi tidak banyak gunanya melakukannya dalam situasi tertentu. Anda benar-benar hanya ingin melacak perubahan pada kode yang Anda manipulasi, seperti plugin khusus dan tema anak Anda. Ini adalah ide yang sangat baik untuk memeriksa dengan penyedia hosting Anda untuk saran mereka tentang topik ini.

Kedua, jika Anda berencana untuk berkontribusi kembali ke WordPress, Anda akan menemukan bahwa itu sebenarnya dikelola melalui sistem kontrol versi lama yang disebut SVN. Model ini membutuhkan infrastruktur server pusat dan jauh lebih tidak populer dibandingkan dengan Git, tetapi sekali lagi, WordPress lebih tua dari Git. Bekerja dengan sistem patching SVN sedikit berbeda dan Anda harus berkonsultasi dengan dokumentasi mereka untuk lebih lanjut tentang ini.

Kesimpulan

Mudah-mudahan, Anda sekarang memiliki pemahaman yang lebih baik tentang apa itu Git dan bagaimana hal itu dapat dimanfaatkan untuk bekerja dengan kode situs web Anda. Git dapat digunakan untuk semua dan semua file yang akan Anda ubah seiring waktu, meskipun itu bukan kode komputer.

Git mengacu pada pengguna targetnya sebagai “pekerja berpengetahuan”, istilah lama yang dipinjam dari IBM. Untuk semuanya, mulai dari catatan di desktop hingga resep, hingga seluruh buku, Git memberi Anda cara untuk mengatur pekerjaan Anda dengan lebih baik dan meninggalkan jejak yang kuat tentang mengapa Anda membuat setiap perubahan dan kapan itu dibuat.

Kekuatan kemampuan untuk kembali ke masa lalu dan melihat perubahan Anda, bercampur dengan kemampuan untuk bekerja di alam semesta paralel tak terbatas dengan percabangan dan penggabungan, menjadikan Git alat yang sangat diperlukan bagi siapa pun yang mengerjakan kode. Git juga merupakan cara utama tim berkolaborasi dalam proyek kode.

Git gratis untuk digunakan dan sebagian besar GUI Git, seperti GitKraken memiliki versi gratis. Tidak ada alasan Anda tidak boleh menggunakan Git untuk melacak pekerjaan Anda, jadi "Git" untuk itu!

Sumber Daya Terkait

- Pengembangan Lokal WordPress dengan XAMPP

- Penggunaan & Alur Kerja Git Tingkat Lanjut

- Git Hooks

- Apa Itu Situs Pengembang?

- Caching untuk WordPress