Dasar

Apa Itu Git dan Mengapa Developer Membutuhkannya

Diperbarui: · Skillaria.Top

Git adalah sistem kontrol versi terdistribusi: ia menyimpan snapshot kondisi proyek (commit), memungkinkan Anda kembali ke versi mana pun, bekerja paralel di branch, dan menggabungkan perubahan dari banyak developer. Git dibuat oleh Linus Torvalds pada 2005 untuk pengembangan kernel Linux dan kini menjadi standar industri.

Git adalah sistem kontrol versi

Git adalah program yang mencatat riwayat perubahan file dalam sebuah proyek. Setiap kali Anda menyimpan kondisi kode, Git membuat snapshot (commit) lengkap dengan penulis, tanggal, dan deskripsinya. Anda bisa kembali ke snapshot mana pun, membandingkannya dengan kondisi sekarang, dan mencari tahu siapa yang mengubah baris tertentu serta alasannya.

Kalau Anda pernah menyimpan folder bernama "proyek_v2", "proyek_final", dan "proyek_final_BENERAN_FINAL", sebenarnya Anda sudah melakukan kontrol versi — hanya saja secara manual. Git melakukan hal yang sama secara otomatis, hemat ruang, dan tanpa takut kehilangan apa pun. Karena itu, bagi developer, Git bukan sekadar program, melainkan alat kerja dasar yang sama wajibnya dengan editor kode.

Apa bedanya Git dengan "folder salinan" dan cloud storage

Cloud storage menyimpan versi terakhir sebuah file dan, paling banter, beberapa salinan otomatis. Git menyimpan riwayat yang bermakna: Anda sendiri yang menentukan kapan perubahan dicatat dan menulis apa yang sudah dikerjakan. Selain itu, Git bisa melakukan hal-hal yang tidak bisa dilakukan cloud storage mana pun:

  • menjalankan beberapa jalur pengembangan sekaligus (branch) lalu menggabungkannya;
  • menampilkan perbedaan antarversi baris per baris (git diff);
  • menggabungkan perubahan dari orang yang berbeda di file yang sama;
  • menemukan commit yang memunculkan bug (git bisect);
  • bekerja tanpa internet — seluruh riwayat tersimpan di komputer Anda.

Kepanjangan Git dan arti namanya

Git tidak punya kepanjangan resmi — ini bukan singkatan. Linus Torvalds memberi nama dengan gayanya sendiri: dalam slang Inggris, git berarti "orang yang menyebalkan dan keras kepala". Torvalds bercanda bahwa ia menamai semua proyeknya sesuai dirinya sendiri.

Di README pertama proyek ini, sang pembuat menuliskan beberapa "kepanjangan" bercanda: misalnya "global information tracker" — saat semuanya berjalan lancar, dan versi umpatan — saat sesuatu rusak. Jadi kalau di wawancara kerja Anda ditanya "apa kepanjangan Git", jawaban yang benar: tidak ada, itu kata biasa, bukan akronim.

Dalam percakapan sehari-hari, orang cukup menyebut "Git" dengan satu suku kata, dilafalkan "git" dengan g keras, bukan "jit".

Asal-usul Git

Hingga 2005, para developer kernel Linux memakai sistem proprietary bernama BitKeeper. Ketika lisensi gratis untuk komunitas dicabut, Torvalds menulis sistemnya sendiri dalam beberapa minggu. Syaratnya ketat: cepat untuk proyek raksasa, sepenuhnya terdistribusi, melindungi riwayat dari kerusakan dengan andal, dan nyaman untuk ribuan branch paralel.

Tak lama kemudian, pemeliharaan proyek diambil alih oleh Junio Hamano, yang sampai sekarang masih menjadi maintainer Git. Kini Git adalah sistem open source berlisensi GPLv2, dan di atasnya berdiri GitHub, GitLab, Bitbucket, Gitea, serta berbagai platform korporat.

Cara kerja Git sebagai sebuah sistem

Supaya Git tidak lagi terasa seperti kumpulan perintah ajaib, ada baiknya memahami tiga gagasan. Ketiganya menjelaskan hampir seluruh perilaku sistem ini.

1. Snapshot, bukan selisih

Banyak sistem lama menyimpan perubahan sebagai kumpulan patch pada file. Git berpikir dalam snapshot: setiap commit adalah kondisi lengkap proyek pada saat dicatat. Agar tidak boros ruang, file yang tidak berubah tidak disalin ulang: commit cukup merujuk ke objek yang sudah tersimpan. Saat repositori dikemas (pack), Git juga mengompresi objek-objek yang mirip, sehingga riwayat proyek besar pun hanya memakan sedikit ruang.

2. Semua dialamatkan dengan hash

Setiap objek di Git — isi file (blob), struktur folder (tree), commit — mendapat identitas yang dihitung dari isinya. Secara historis memakai SHA-1 (40 karakter heksadesimal); di versi baru, repositori bisa dibuat dengan SHA-256. Mengubah commit lama secara diam-diam itu mustahil: hash-nya akan berubah, begitu pula hash semua commit sesudahnya.

$ git log --oneline -3
a3f9c21 Tambah form login
7b02e4d Perbaiki validasi email
1c8d5f0 Commit pertama

Teks pendek di sebelah kiri adalah hash commit yang disingkat. Dengan itu Anda bisa merujuk versi mana pun: git show 7b02e4d.

3. Tiga kondisi file

Inilah dasar dari segala dasar Git, yang ditanyakan di hampir setiap wawancara kerja. Sebuah file dalam proyek bisa berada di salah satu dari tiga area:

AreaApa ituCara masuk ke sana
Working directory (working tree)File yang Anda lihat dan editCukup ubah file
Index (staging area)Draf commit berikutnyagit add file
Repositori (.git)Riwayat yang sudah dicatatgit commit -m "pesan"

Index-lah yang membedakan Git dari banyak sistem lain. Dengan index, Anda bisa memasukkan hanya sebagian perubahan ke dalam commit: misalnya perbaikan bug di satu commit, dan penggantian nama variabel di commit lain. Hasilnya, riwayat jadi mudah dibaca.

Terdistribusi: mengapa setiap orang punya salinan lengkap

Git adalah sistem kontrol versi terdistribusi (DVCS). Saat melakukan clone, Anda tidak hanya mendapat file terbaru, tetapi juga seluruh riwayat proyek. Sebagian besar operasi — commit, melihat riwayat, membuat branch, membandingkan — dijalankan secara lokal dan instan, tanpa server.

Dalam model ini, server seperti GitHub hanyalah satu salinan repositori lagi yang disepakati tim sebagai yang utama. Jika server sedang tidak bisa diakses, pekerjaan tidak berhenti: Anda tetap bisa commit dan mengirim perubahan nanti dengan git push. Bahkan jika server hilang sama sekali, riwayat bisa dipulihkan dari clone mana pun.

Terpusat (SVN)Terdistribusi (Git)
Lokasi riwayatDi serverDi setiap anggota tim
Kerja tanpa jaringanTerbatasPenuh
BranchBerat, berupa salinan direktoriRingan, hanya penunjuk ke commit
Kecepatan operasi lokalBergantung pada serverInstan

Git dan GitHub itu berbeda

Ini kebingungan yang sering dialami pemula. Git adalah program yang berjalan di komputer Anda. GitHub adalah layanan web tempat menyimpan repositori Git, dilengkapi alat kolaborasi tim: pull request, code review, issue, CI. GitLab dan Bitbucket adalah layanan serupa.

Anda bisa memakai Git sepenuhnya tanpa GitHub — misalnya untuk catatan pribadi atau proyek lokal. Sebaliknya, GitHub tanpa Git tidak ada artinya: layanan itu dibangun di sekitar repositori Git.

Dasar-dasar Git: siklus kerja minimal

Beginilah pekerjaan sehari-hari dengan Git. Beberapa perintah ini sudah mencakup sebagian besar hal yang dilakukan developer setiap hari.

# buat repositori di folder saat ini
git init

# lihat apa saja yang berubah
git status

# tambahkan file ke index
git add index.html style.css

# catat snapshot
git commit -m "Buat layout halaman utama"

# lihat riwayat
git log --oneline

# buat branch dan pindah ke sana
git switch -c feature/login

# gabungkan branch ke branch utama
git switch main
git merge feature/login

# kirim perubahan ke server
git push origin main

Perintah git switch hadir di Git 2.23 sebagai pengganti yang lebih jelas untuk sebagian fungsi git checkout. Di tutorial lama Anda akan menemukan git checkout -b feature/login — fungsinya sama.

Apa yang terjadi saat git commit

Git mengambil isi index, menyimpan setiap file sebagai blob, membangun objek tree untuk folder, lalu membuat objek commit. Commit berisi: rujukan ke tree, rujukan ke commit induk (atau dua — setelah merge), author, committer, dan pesan. Kemudian penunjuk branch saat ini digeser ke commit baru. Branch di Git secara harfiah adalah file berisi hash commit terakhir, karena itu branch dibuat dalam hitungan milidetik.

Fungsi Git bagi developer: alasan praktis

Tidak perlu takut bereksperimen

Setiap perubahan bisa dibatalkan. Kode rusak? git restore file mengembalikan versi terakhir yang dicatat. Commit yang keliru sudah masuk riwayat? git revert membuat commit pembalik tanpa menulis ulang riwayat bersama. Ini mengubah gaya kerja: Anda lebih berani mencoba, karena rollback hanya butuh beberapa detik.

Kerja tim tanpa kekacauan

Setiap developer bekerja di branch masing-masing tanpa mengganggu yang lain. Saat tugas selesai, perubahan melewati review lalu digabungkan ke branch utama. Jika dua orang mengubah bagian yang sama, Git akan menampilkan konflik dan membiarkan Anda menyelesaikannya secara sadar, alih-alih diam-diam menimpa pekerjaan orang lain.

Riwayat sebagai dokumentasi

Pesan commit yang baik menjawab pertanyaan "mengapa kodenya seperti ini". Perintah git blame file menunjukkan siapa dan di commit mana yang terakhir mengubah setiap baris, sedangkan git log -p file menampilkan seluruh evolusi file. Setahun kemudian, ini menghemat berjam-jam investigasi.

Syarat dari perusahaan

Penguasaan Git tercantum di hampir setiap lowongan developer, tester, DevOps engineer, dan data analyst. Di wawancara yang diuji bukan hafalan perintah, melainkan pemahaman: apa bedanya merge dan rebase, apa itu index, bagaimana membatalkan commit, bagaimana menyelesaikan konflik. Profil GitHub dengan riwayat commit yang rapi juga berfungsi sebagai portofolio.

Siapa lagi yang butuh Git

Git berguna di mana pun ada file teks dan riwayat itu penting: technical writer (dokumentasi Markdown), web designer yang menulis HTML/CSS, analis (skrip SQL, notebook), administrator (konfigurasi server, infrastructure as code). Untuk file biner besar — video, PSD, dataset — dipakai ekstensi Git LFS, karena Git sendiri dioptimalkan untuk teks.

Pro Git — buku terbaik tentang Git

Jika ingin mendalami, mulailah dengan buku "Pro Git" karya Scott Chacon dan Ben Straub. Buku ini gratis, berlisensi terbuka, dan diterbitkan di situs resmi git-scm.com pada bagian Book, termasuk dalam beberapa terjemahan. Inilah "Pro Git" yang sering dicari orang: buku pelajaran lengkap dari dasar hingga cara kerja internal.

Cara membacanya agar bermanfaat:

  • bab 1–3 (pengantar, dasar, branching) — minimum wajib, ulangi perintahnya di terminal;
  • bab tentang remote repository dan GitHub — saat Anda mulai bekerja dalam tim;
  • bab "Git Internals" — saat Anda ingin benar-benar memahami cara kerja objek dan referensi.

Sumber resmi kedua adalah bantuan bawaan: git help commit atau git commit --help membuka dokumentasi lengkap sebuah perintah, sedangkan git commit -h menampilkan ringkasan flag.

Miskonsepsi umum pemula

  • "Git menyimpan file secara otomatis." Tidak, selama Anda belum commit, perubahan hanya ada di working directory.
  • "Commit langsung masuk ke GitHub." Commit bersifat lokal. Commit baru terkirim ke server setelah git push.
  • "git add hanya untuk file baru." git add juga memasukkan perubahan file yang sudah dilacak ke index.
  • "Yang terhapus dari riwayat tidak bisa kembali." Hampir selalu bisa: git reflog menyimpan pergerakan penunjuk, dan commit yang "hilang" bisa ditemukan lewat hash-nya.
  • "Branch adalah salinan proyek." Branch adalah penunjuk ringan ke sebuah commit, bukan duplikat file.

Mulai belajar Git dari mana

  1. Instal Git dan cek versinya: git --version.
  2. Atur nama dan email: git config --global user.name dan user.email.
  3. Buat repositori latihan, lakukan 5–10 commit, lihat git log dan git diff.
  4. Latihan dengan branch: buat, gabungkan, sengaja buat konflik lalu selesaikan.
  5. Buat akun GitHub, kirim repositori ke sana, dan buka pull request pertama Anda.

Urutan ini memberi hasil lebih cepat daripada membaca referensi dari awal sampai akhir: Anda langsung melihat bagaimana setiap perintah mengubah kondisi repositori.

Kesimpulan

Git adalah sistem kontrol versi terdistribusi yang menyimpan riwayat proyek dalam bentuk snapshot, melindunginya dengan hash, dan memungkinkan tim bekerja paralel di branch. Namanya tidak punya kepanjangan, dan dalam praktik Git adalah alat wajib bagi setiap developer. Kuasai siklus kerja add — commit — push, pahami tiga area file dan branch, lalu perdalam dengan buku Pro Git. Semua ini dibahas langkah demi langkah, dari commit pertama hingga pull request, lewat praktik di kursus Git.

Pertanyaan umum

Apakah Git gratis?

Ya, Git adalah perangkat lunak bebas berlisensi GPLv2. Anda bisa memakainya gratis untuk proyek pribadi maupun komersial.

Apakah harus bisa pemrograman untuk memakai Git?

Tidak. Cukup bisa bekerja dengan file dan terminal; Git juga berguna untuk dokumentasi, konfigurasi, dan proyek teks apa pun.

Bisakah memakai Git tanpa command line?

Bisa, ada klien grafis dan dukungan bawaan di VS Code serta IDE JetBrains. Namun memahami perintah terminal membantu menghadapi situasi tidak biasa yang tidak tercakup oleh tombol.

Berapa lama waktu untuk mempelajari dasar Git?

Siklus dasar (init, add, commit, log, branch, merge, push) bisa dikuasai dalam beberapa hari latihan. Kemahiran dengan rebase, konflik, dan pemulihan riwayat datang seiring pengalaman di proyek nyata.

Apa bedanya Git dengan SVN?

SVN adalah sistem terpusat: riwayat disimpan di server. Di Git setiap developer punya salinan riwayat lengkap, branch lebih ringan, dan sebagian besar operasi berjalan secara lokal.

Pelajari topik ini lewat video

Topik ini dibahas mendalam dengan praktik di kursus “Git dari Nol hingga Pengembang Percaya Diri”.

Ke kursus