Iklan

perangkat lunak kontrol versiSebagai pengembang web, seringkali kita cenderung bekerja di situs pengembangan lokal kemudian mengunggah semuanya ketika kita selesai. Ini bagus jika itu hanya Anda dan perubahannya kecil, tetapi ketika Anda berurusan dengan lebih dari satu orang yang mengerjakan sesuatu, atau pada proyek besar dengan banyak komponen yang rumit, itu sama sekali tidak layak. Saat itulah kita beralih ke sesuatu yang disebut kontrol versi.

Hari ini saya akan berbicara tentang perangkat lunak kontrol versi open source yang disebut Git. Ini memungkinkan lebih dari satu orang untuk bekerja dengan aman pada proyek yang sama tanpa mengganggu satu sama lain, tetapi itu jauh lebih dari itu juga.

Mengapa Menggunakan Perangkat Lunak Kontrol Versi?

Pertama dan terutama, nama itu harus memberikannya. Perangkat lunak kontrol versi memungkinkan Anda untuk memiliki "versi" proyek, yang menunjukkan perubahan yang dilakukan pada kode dari waktu ke waktu, dan memungkinkan Anda untuk mundur jika diperlukan dan membatalkan perubahan itu. Kemampuan ini sendiri - mampu membandingkan dua versi atau membalikkan perubahan, membuatnya cukup berharga ketika bekerja pada proyek yang lebih besar.

instagram viewer

Anda bahkan mungkin telah melakukan ini sendiri di beberapa titik, menyimpan salinan proyek di berbagai titik sehingga Anda memiliki cadangan. Dalam sistem kontrol versi, hanya perubahan yang akan disimpan - file tambalan yang dapat diterapkan ke satu versi, agar sama dengan versi berikutnya. Dengan satu pengembang, ini sudah cukup.

Tetapi bagaimana jika Anda memiliki lebih dari satu pengembang yang mengerjakan proyek? Saat itulah ide server kontrol versi terpusat masuk. Ini telah menjadi standar untuk waktu yang lama, di mana semua versi disimpan di server pusat, dan setiap pengembang checkout dan mengunggah perubahan kembali ke server ini. Jika Anda pernah melihat riwayat edit dari halaman Wikipedia, Anda akan memiliki ide bagus tentang bagaimana ini bekerja dalam skenario dunia nyata:

perangkat lunak kontrol versi

Manfaat dari sistem seperti ini adalah bahwa banyak pengembang dapat membuat perubahan, dan setiap perubahan kemudian dapat dikaitkan dengan pengembang tertentu. Pada sisi negatifnya, fakta bahwa semuanya disimpan pada basis data jauh berarti tidak ada perubahan yang dapat dilakukan ketika server turun; dan jika database pusat hilang, setiap klien hanya memiliki versi apa pun yang sedang mereka kerjakan.

Itu membawa kita ke Git, dan yang disebut lainnya sistem kontrol versi terdistribusi. Dalam sistem ini, klien tidak hanya memeriksa versi file saat ini dan bekerja darinya - mereka mencerminkan seluruh riwayat versi. Setiap pengembang selalu memiliki salinan lengkap semuanya. Server pusat masih digunakan, tetapi jika yang terburuk terjadi, maka semuanya masih dapat dipulihkan dari salah satu klien yang memiliki versi terbaru.

Git secara khusus bekerja dengan mengambil "snapshots" file; jika file tetap tidak berubah dalam versi tertentu, itu hanya menautkan ke file sebelumnya - ini membuat semuanya cepat dan ramping.

Mungkin juga menarik bagi Anda untuk mengetahui bahwa Git digunakan untuk mengelola dan mengembangkan kernel linux inti - blok dasar bangunan tempat semua distro linux dibangun.

kontrol versi

Apa itu Github?

Meskipun Anda dapat menjalankan server Git Anda sendiri secara lokal, Github keduanya adalah server jarak jauh, komunitas pengembang, dan antarmuka web grafis untuk mengelola proyek Git Anda. Ini gratis untuk digunakan hingga 5 repositori publik - yaitu, ketika siapa pun dapat melihat atau bercabang kode Anda - dengan rencana biaya rendah untuk proyek-proyek swasta. Saya sangat menyarankan Anda pergi mendaftar untuk mendapatkan akun gratis sehingga Anda dapat mulai bermain-main dengan proyek Anda sendiri atau forking orang lain.

kontrol versi

Forking & Branching

Ini adalah konsep inti untuk pengalaman Git, jadi mari kita luangkan waktu untuk menjelaskan perbedaannya.

Anda mungkin pernah mendengar karya "garpu" ketika berhadapan dengan distro linux. Jika Anda terbiasa dengan aplikasi pusat media Plex, Anda akan tahu itu pada awalnya merupakan garpu dari sumber terbuka yang serupa Pusat Media Xbox Aeon Nox 3.5: Tema Cantik Dan Dapat Disesuaikan Untuk XBMCSiapkan pusat media Anda persis seperti yang Anda inginkan. Aeon Nox 3.5 adalah versi terbaru dari apa yang mungkin merupakan tema terbaik untuk XBMC, dan itu adalah kombinasi yang langka: ... Baca lebih banyak . Ini berarti bahwa pada beberapa titik di masa lalu, beberapa pengembang mengambil kode XBMC, dan memutuskan untuk melakukannya sendiri; yang menjadi Plex.

Ini tentu saja benar-benar diperbolehkan ketika proyek ini open source - Anda dapat mengambil kode, melakukan apa pun yang Anda inginkan dengannya. Dengan Git, jika Anda merasa perubahan Anda cukup bagus untuk dimasukkan kembali ke proyek "master", Anda dapat membuat "tarik permintaan" kepada penulis, meminta mereka untuk menarik perubahan Anda kembali ke aslinya proyek. Ini memungkinkan Anda memiliki ratusan ribu pengembang yang mengerjakan proyek pada titik mana pun, tidak ada yang harus melakukannya disetujui untuk akses kode - mereka hanya menyalin kode, membuat perubahan, dan meminta untuk dimasukkan kembali ke dalam menguasai. Tentu saja, tergantung pada pemilik proyek asli jika mereka memutuskan untuk menerima perubahan Anda atau tidak.

Percabangan adalah sesuatu yang dilakukan secara internal pada suatu proyek oleh pengembang yang berwenang. Ini memungkinkan Anda untuk dengan mudah memisahkan masalah atau fitur tertentu, dan mengatasinya tanpa merusak file master. Setelah Anda puas bahwa cabang Anda telah menangani masalah ini, Anda menggabungkannya kembali ke master. Kapan saja, ada sebanyak mungkin cabang yang Anda inginkan; mereka tidak saling mengganggu. Anda juga dapat menggabungkan perubahan antar cabang tanpa menyentuh master.

Berikut adalah diagram alur contoh yang bagus Vincent Driessen:

perangkat lunak kontrol versi

Lain kali, kita akan melihat cara menyiapkan contoh Git yang berfungsi dan membuat perubahan kode dalam cabang. Kontrol versi adalah topik yang sangat besar. Saya hanya memberikan ikhtisar paling singkat di sini, tetapi sebagai pengembang yang terbiasa melakukan perubahan dan membatalkannya jika tidak berfungsi, seluruh konsep ini telah mengejutkan saya - saya harap itu juga milik Anda.

Apakah Anda seorang pengembang berpengalaman dengan pengalaman di Git? Apakah Anda baru memulai dan berpikir Anda ingin melakukan sesuatu? Suarakan di komentar!

James memiliki gelar BSc dalam Artificial Intelligence, dan bersertifikat CompTIA A + dan Network +. Dia adalah pengembang utama MakeUseOf, dan menghabiskan waktu luangnya bermain VR paintball dan boardgames. Dia telah membangun PC sejak dia masih kecil.