Memahami Version Control beserta Git dan Github
Mungkin sebagian dari kita, terutama para developer pasti memiliki akun di github. Mungkin muncul pertanyaan, apa beda github dengan git ?. Untuk memahaminya, terlebih dahulu kita akan membahas terlebih dahulu tentang version control system, jenis-jenis version control kemudian dilanjutkan dengan pembahasan tentang git dan github.
Apa itu version control system (VCS) ?
Version control system (VCS) adalah suatu teknik yang membantu para developer software dalam mengelola perubahan source code dari waktu ke waktu. VCS dapat mengtrack setiap modikasi yang dilakukan pada source code, apabila terjadi kesalahan pada saat modifikasi source code, kita dapat kembali pada versi awal sebelum terjadi kesalahan.Misalnya anda sedang membangun sebuah aplikasi, tentunya sangat wajar jika anda sebagai seorang programmer melakukan revisi source code berulang kali. Revisi code bisa dilakukan pada satu file atau lebih. Jika seandainya client meminta anda untuk menghilangkan atau membatalkan sebuah fitur pada aplikasi tersebut, padahal sebelumnya si client tersebut yang meminta penambahan fitur tersebut. Tentunya akan merepotkan sekali melakukan proses revisi code, apalagi harus dilakukan proses revisi code pada banyak file. Dengan menggunakan version control, permasalahan tersebut dapat diatasi. Version control mencatat informasi perubahan atas apa-apa saja yang telah dirubah, tanggal serta informasi user yang melakukan perubahan (modifikasi) source code tersebut. Dengan demikian kita dapat kembali pada versi awal sebelum penambahan fitur tersebut.
Istilah VCS kadang-kadang disebut juga sebagai Source Code Management (SCM) tool atau Revision Control System (RCS).
Jenis-jenis Version Control System
Secara umum version control dibagi kedalam dua jenis (kategori) :- Centralized Version Control
- Distributed Version Control
Centralized Version Control
Sistem kerja dari Centralized Version Control seperti hubungan client-server, dimana sebuah repositori diletakkan pada server dan memberikan akses kepada semua client.Ketika terjadi perubahan pada reposiitori, programmer dapat melakukan update selama masih terhubung ke server. Karena bergantung pada server, maka apabila server dalam keadaan mati tentunya maka programmer tidak dapat menyimpan perubahan terhadap code yang telah dimodifikasi.
Distributed Version Control
Pada Distributed Version Control, programmer memiliki seluruh salinan repository baik file maupun history-nya. Git merupakan salah satu tool version control yang menganut sistem Distributed Version Control.Kelebihannya adalah kita dapat melakukan semua operasi secara lokal kecuali pada saat melakukan sharing repositori.
Apa itu Git ?
Git adalah salah satu tool Version Control Sytem yang berkategori atau jenis distributed version control yang paling populer, dimana banyak para developer menggunakannya. Tool distributed version control lainnya adalah Mercurial. Subversion merupakan tool centralized versio control yang paling umum digunakan.Apa itu Github ?
Github adalah layanan (service) hosting repository berbasis web yang menggunakan version control Git. Dengan demikian kita dapat melakukan manajemen source code seperti yang ditawarkan oleh version control Git pada Github.Perbedaan Github dan Git ?
Dari penjelasan diatas dapat kita simpulkan bahwa Git adalah tool version control, sedangkan Github merupakan layanan (service) yang menggunakan tool Git yang mana layananannya disajikan dalam bentuk web.Perbedaan signifikan lainnya adalah, Git menggunakan command-line tool sedangkan Github menyediakan interface dalam bentuk : web ,dekstop serta mobile integration dalam proses penggunaannya.