Apakah teman-teman sudah ada yang mengenal git?. Kalau belum, yuk kenalan bareng sama aku. Git merupakan salah satu aplikasi VCS (Version Control System) yang sangat populer. Git diciptakan pada tahun 2005 oleh Linus Torvalds. Linus yang sama dengan yang mengembangkan kernel Linux. Lagi-lagi, Linus tidak puas dengan VCS yang ada pada saat itu dan dia menciptakan VCS versinya sendiri. Tampaknya Linus memang tidak pernah puas dengan karya orang lain ya.
VCS apa sih?
Bagi yang belum tahu apa itu VCS, mari kita bahas dulu dengan singkat. Kalau dari namanya, kita dapat mengartikan VCS sebagai sebuah alat yang digunakan untuk mengontrol versi dari sesuatu. Sesuatu yang dimaksud di sini tentunya file atau kumpulan file. Mungkin kita sebut saja proyek berbasis file agar lebih mudah. Contoh proyek berbasis file itu misalnya skripsi atau tugas yang ditulis dengan latex, kode sumber untuk aplikasi, atau yang lain.
VCS sebenarnya bukan hanya git saja, ada yang lain seperti SVN dan juga Mercurial. Tapi git menurutku paling populer. Setiap hari aku menggunakan git untuk mengontrol kode sumber aplikasi yang aku buat. Aku juga menggunakan git untuk mengontrol versi pada tulisanku yang aku buat menggunakan latex. Jadi, git adalah aplikasi version control andalanku.
Cara Kerja Git
Nah, sekarang mari kita mengenal git dari cara kerjanya. Bagaimana sebenarnya git melakukan version control terhadap proyek yang kita buat. Pada git kita harus mengenal 3 area utama, yaitu Working Directory, Staging Area dan Repository.
Working Directory adalah tempat dimana kita melakukan modifikasi pada proyek yang sedang kita kerjakan. Proses modifikasi tentunya terdiri dari tambah, ubah atau hapus file dalam proyek kita. Setiap perubahan yang kita buat di sini tidak akan langsung di versikan oleh git karena di sini perubahan masih sangat banyak terjadi.
Jika proses modifikasi proyek pada working directory sudah selesai dilakukan maka kita pindahkan file-file tersebut ke Staging Area. Staging Area merupakan tempat dimana file-file tersebut sudah siap untuk disimpan ke dalam repository.
File-file yang sudah dikumpulkan ke staging area selanjutnya akan disimpan ke dalam repository. Dalam git kita menggunakan perintah yang namanya commit untuk memasukkan perubahan tersebut repository. Jadi, ketika kita melakukan commit maka semua file yang ada pada staging area akan dikirim ke repository dengan kode versi yang unik.
Mengenal Git Remote Repository
Repository pada git dibedakan menjadi 2, yaitu local repository dan remote repository. Local repository berada di komputer kita, sedangkan remote repository berada di suatu tempat selain komputer kita. Kita dapat mengirim repository local kita ke remote dengan menggunakan perintah push dan kita dapat mengambil repository dari remote dengan perintah pull.
Contoh remote repository yang bisa kita gunakan adalah github, gitlab dan bitbucket. Masing-masing aplikasi tersebut memiliki kekurangan dan kelebihan. Jika kita ingin melakukan proyek yang open source biasanya lebih disarankan menggunakan github. Jika personal, bisa memilih gitlab atau bitbucket.

Berkolaborasi dengan Git
Dengan keberadaan remote repository ini, kita dapat melakukan kolaborasi pengembangan proyek dengan banyak orang. Konsepnya, setiap orang memiliki local repository kemudian local repository tersebut akan dikirim ke remote repository secara kolaboratif. Untuk membayangkan bentukanya coba anggap setiap versi adalah kumpulan titik yang saling terkait antara satu dengan yang lain.

Misalkan ada 2 orang yang akan berkolaborasi, yaitu A dan B. A dan B sama-sama melakukan perubahan pada working directory dan melakukan commit ke local repository. Saat A melakukan push ke remote repository maka remote repository akan bertambah dengan beberapa versi yang dibuat oleh A yaitu versi 6.
Saat B akan mengirim local repositorynya ke remote, B harus terlebih dahulu mengambil repository dari remote (pull) dan baru mengirimnya ke remote. Jika tidak dilakukan pull terlebih dahulu, maka remote server akan menolak karena versi yang dibuat oleh B berasal dari titik 5 dan harusnya ditaukan dengan titik 5, padahal titik terakhir di remote adalah 6.
Saat melakukan pull dan kita memiliki working directory yang belum di-commit, maka akan berpotensi konflik jika ternyata di remote repository ada perubahan terhadap file yang sama dengan yang kita buat. Jadi, pastikan sebelum melakukan pull, kita harus commit perubahan yang kita buat jika tidak ingin terjadi konflik. Kalaupun terjadi konflik, sebenarnya tidak sulit untuk menyelesaikannya. Kita hanya perlu mengedit file tersebut.
Penutup Mengenal Git
Nah, demikianlah sedikit penjelasan tentang git. Semoga dengan penjelasan yang aku buat tadi teman-teman bisa mengenal git dan tahu cara kerjanya seperti apa. Jika sudah tahu cara kerja git, selanjutnya kita akan praktek cara menggunakan git. Tapi, tidak sekarang ya. Lain waktu akan aku tulis kembali.