Berkenalan Lebih Dalam dengan “Git” — Part 1

Tresna Adi Nugroho
5 min readMay 19, 2021

--

Git Logo

Developer ataupun Programmer diluar sana mungkin tidak asing mendengar istilah “Git” ini, atau malah sudah berpengalaman dalam penggunaan Git tersebut. Tapi mungkin beberapa dari kalian masih asing dalam istilah Git. Jadi apa sih yang dimaksud dengan Git?

History of Git

Git adalah sebuah proyek yang diciptakan oleh Linus Torvalds, yang pada awalnya ditujukan untuk pengembangan kernel Linux. Perkembangan Git sendiri dimulai pada April 2005 dimana pada saat itu banyak pengembang kernel Linux berhenti menggunakan Bitkeeper setelah pemegang hak cipta BitKeeper, yaitu Larry McVoy menghentikan penggunaan gratis produk tersebut. Hal itu ia lakukan setelah mengklaim bahwa Andrew Tridgell telah membuat SourcePuller dengan cara merekayasa balik protokol BitKeeper.

Linus Torvalds

Komunitas pengembang kernel Linux pun mencari cara bagaimana bisa memiliki tools seperti Bitkeeper tetapi dengan improvisasi yang lebih baik, dari situ lahirlah proyek Git. Hasilnya Git memiliki kecepatan, rancangan sederhana, dukungan kuat untuk pengembangan non-linier, kemampuan untuk menangani proyek besar terdistribusi, serta percabangan pada sistem Git juga sangat bagus dan baik.

Git & Version Control System

Pertama — tama yang kamu harus ketahui adalah Git bukan sebuah Programming Language, melainkan Git adalah sebuah tools atau software yang digunakan para Developer atau Programmer untuk menjalankan proyek kecil ataupun besar, baik individu maupun kelompok (collaboration project).

Di dalam Git kita akan mengenal istilah Version Control System yang dimana akan mencatat setiap ada penambahan code atau perubahan file di dalam repository proyek. Para Developer tidak perlu takut code atau update yang mereka lakukan secara bersamaan akan tumpang tindih, karena Version Control System membantu menyimpan setiap perubahan dan langsung memperbaruinya.

Distributed & Centralized Version Control

Dalam penggunaan Git kita juga perlu mengetahui dua istilah yang tidak boleh kita lupakan yaitu Distributed Version Control dan Centralized Version Control. Kedua Version Control disini membantu Developer/Programmer dalam memanajemen proyek mereka, terutama dalam bagaimana mereka melakukan update pada file proyek mereka.

Distributed Version Control

Distributed Version Control atau Version Control Terdistribusi adalah version control yang dimana penyimpanan database Git tidak hanya berada dalam satu tempat saja. Jadi semua orang yang terlibat dalam collaboration project memiliki penyimpanan code di masing — masing komputer mereka sehingga memudahkan pengelolaan proyek baik secara offline maupun online.

Sesuai ilustrasi yang digambarkan diatas, Version Control Terdistribusi ini memungkinkan tiap Developer/Programmer memiliki salinan penuh (clone project) atas proyek yang sedang dikembangkan untuk disimpan di komputer mereka masing — masing. Lalu bagaimana nanti nya tiap update yang dilakukan Developer/Programmer dapat menjadi satu proyek? Dengan melakukan “Merge”, file atau folder yang telah diupdate tadi nantinya akan disatukan hingga terbentuk sebuah file atau folder proyek yang baru.

Centralized Version Control

Centralized Version Control atau Version Control Terpusat adalah version control yang dimana penyimpanan database Git hanya ada di satu tempat dan setiap perubahan file dalam proyek akan disimpan di sana.

Berbeda dengan Distributed Version Control yang memungkinkan tiap orang memiliki salinan penuh atas repository proyek yang sedang dikembangkan, Centralized Version Control memungkinkan tiap Developer/Programmer “menarik file — file yang hanya dibutuhkan atau sedang dikerjakan oleh mereka. Penting juga untuk diketahui bahwa Centralized Version Control memerlukan tiap orang yang ada dalam proyek tersebut untuk tersambung ke jaringan atau server pusat dimana repository proyek itu berada agar dapat mengakses source-code dari file proyek maupun melakukan update terhadap proyek yang sedang dikembangkan.

Why Git is so Important?

Sebelum kita mengetahui apa saja hal penting yang bisa kita dapat dari penggunaan Git, mari kita lihat analogi contoh penggunaan Git

Before Git

Saat kita ingin menyimpan semua perubahan pada file, biasanya kita akan membuat file baru dengan “save as”. Lalu, setiap kali nantinya ada perubahan dari file yang sedang kita kerjakakan maka file — file baru tersebut akan menumpuk dalam direktori proyek seperti pada ilustrasi di atas.

After Git

Tapi setelah menggunakan Git, hanya akan ada satu file dalam proyek dan perubahannya disimpan dalam database. Git hanya akan menyimpan delta perubahannya saja, Git tidak akan menyimpan seluruh isi file yang akan memakan banyak memori. Git memungkinkan kita kembali ke versi revisi yang kita inginkan, dan pada akhirnya kita akan memiliki 1 file saja.

Setelah melihat ilustrasi diatas, kita simpulkan beberapa pentingnya manfaat penggunaan Git yaitu antara lain:

  1. Pengontrol Versi. Seperti yang dilihat pada ilustrasi sebelumnya, Git memungkinkan kita untuk membuat versi baru dari tiap update atau perubahan yang kita lakukan pada proyek, serta kita juga dapat kembali ke versi proyek sebelumnya.
  2. Melacak perubahan dan pembaruan. Kita dapat melihat siapa yang membuat perubahan pada proyek, serta kapan dan apa perubahan yang dilakukan tiap orang.
  3. Memungkinkan untuk bekerja secara kolaboratif. Proyek pengembangan perangkat lunak biasanya membutuhkan banyak orang untuk bekerja sama. Git memberi para pengembang cara sistematis untuk melakukan itu. Dengan demikian, pengembang fokus pada proyek daripada sesi komunikasi ekstensif antara pengembang satu dengan yang lain.
  4. Menyimpan seluruh versi source code. Dengan menggunakan Git, proyek yang kita kerjakan akan lebih aman karena tiap pembaruan yang telah dikirim ke repository proyek akan tersimpan di dalam database Git. Jadi jika sewaktu — waktu kita kehilangan file dalam local storage komputer kita, kita bisa melakukan clone project ataupun melakukan pull project untuk mendapatkan file — file proyek tersebut.
  5. Bisa ikut berkontribusi ke dalam proyek open-source. Seringkali ada komunitas ataupun individual yang secara terbuka memberikan akses ke proyek yang mereka kembangkan atau kita sebut dengan istilah proyek open-source. Proyek open-source ini bertujuan agar tiap orang bisa saling berkontribusi terhadap proyek tersebut, dan tentunya dengan penggunaan Git akan lebih mudah dalam melakukan kontribusi tersebut.

Itu tadi pengenalan dasar — dasar Git yang perlu kita ketahui. Dimulai dari sejarah Git, pengertian dari Git serta Version Control System, lalu kita juga mengetahui perbedaan Version Control yang Terdistribusi & Terpusat, serta pentingnya penggunaan Git dan analogi contoh penggunaan nya.

Di artikel “Berkenalan Lebih Dalam dengan Git — Part 2", saya akan membahas command atau perintah dasar dalam penggunaan Git.

Untuk sekarang cukup sekian dan sampai bertemu di artikel — artikel selanjutnya!

--

--