Skip to content

Catatan git

Semua tulisan
24 Okt 20267 menit bacagit · version control · open source · developer tools · githubBaca dalam:ENID

Git Dijelaskan: Cara Kerja Version Control Sebenarnya

Git adalah sistem version control di balik hampir setiap proyek open source. Pelajari apa itu version control, cara kerja commit, branch, dan merging, kenapa Git mengalahkan pesaingnya, dan bedanya Git dengan GitHub.

Editor kode gelap dengan panel Git yang menampilkan branch dan riwayat commit, menggambarkan version control. Foto oleh Daniil Komov di Pexels.

Setiap proyek open source di GitHub, dan hampir semua proyek software serius di mana pun, berjalan di atas Git. Tapi Git masih jadi salah satu tool yang paling disalahpahami: pemula mengira Git sama dengan GitHub, takut merge conflict yang belum dipahami, dan mengetik perintah hafalan tanpa tahu fungsinya. Panduan ini memperbaikinya. Kamu akan belajar apa itu version control sebenarnya, cara Git mencatat pekerjaanmu di balik layar, kenapa Git mengalahkan semua pesaingnya, dan bedanya Git dengan GitHub.

Poin Penting

Version control mencatat setiap perubahan pada file-mu dari waktu ke waktu, jadi kamu bisa kembali ke titik mana pun dalam riwayat, melihat siapa mengubah apa, dan bereksperimen tanpa takut.

Git menyimpan riwayat sebagai snapshot seluruh proyek, bukan daftar perbedaan, dan setiap file di-checksum dengan hash SHA-1 sepanjang 40 karakter.

Git bersifat terdistribusi: komputermu menyimpan seluruh riwayat proyek, jadi commit, membuat branch, dan menjelajah riwayat semuanya bisa dilakukan offline dan cepat.

Branch hanyalah penunjuk ringan ke sebuah commit, makanya membuat dan menggabungkan branch itu murah dan jadi pusat cara kerja tim.

Git adalah tool version control; GitHub adalah salah satu platform yang meng-host repositori Git secara online. Keduanya bukan hal yang sama.

Adopsinya luar biasa: Git adalah sistem version control yang paling banyak dipakai di dunia, dan situs resmi Git mencatat 96% developer profesional menggunakannya, menurut survei developer Stack Overflow 2022.

Apa Itu Version Control Sebenarnya

Version control, juga disebut source control, adalah praktik mencatat dan mengelola perubahan pada source code dari waktu ke waktu. Tutorial Atlassian menyebut tiga manfaat intinya: riwayat perubahan jangka panjang yang lengkap untuk setiap file, branching dan merging, serta traceability tentang siapa mengubah apa, kapan, dan kenapa.

Bayangkan seperti mesin waktu untuk proyekmu. Setiap perubahan penting disimpan sebagai checkpoint yang bisa kamu kunjungi lagi. Kalau fitur baru merusak semuanya, kamu mundur. Kalau kamu penasaran siapa yang memasukkan bug dan kenapa, riwayatnya menjawab. Kalau kamu ingin mencoba ide berisiko, kamu bikin branch, bereksperimen bebas, lalu gabungkan kembali atau buang saja. Tidak perlu lagi folder bernama `final-v2-BENERAN-FINAL`.

Cara Git Menyimpan Pekerjaanmu: Snapshot, Bukan Diff

Sistem version control lawas seperti CVS dan Subversion menyimpan riwayat sebagai sekumpulan perubahan file: untuk tiap file, mereka mencatat apa yang berbeda dari versi sebelumnya. Git melakukan hal yang berbeda. Pro Git, buku resminya, menjelaskan bahwa Git menyimpan data sebagai snapshot: setiap kali kamu commit, Git memotret tampilan semua file-mu saat itu dan menyimpan referensi ke snapshot tersebut. Kalau sebuah file tidak berubah antar commit, Git tidak menyimpannya lagi; ia cukup menautkan ke file identik sebelumnya.

Desain ini punya dua konsekuensi besar. Pertama, hampir semua operasi Git bersifat lokal dan cepat, karena Git menyimpan seluruh riwayat tepat di mesinmu. Kedua, semua yang ada di Git di-checksum. Setiap file dan setiap commit diidentifikasi dengan hash SHA-1 heksadesimal 40 karakter, jadi tidak ada yang bisa berubah tanpa Git menyadarinya. Sebuah commit, dalam kata-kata panduan pemula freeCodeCamp, adalah "sebuah versi dari proyekmu," dan hash adalah namanya yang anti rusak.

File di Git bergerak melalui tiga status yang perlu diketahui pemula: modified (kamu mengubah file di working directory), staged (kamu menandainya untuk masuk ke commit berikutnya), dan committed (ia tersimpan aman di database Git). Ini berkorespondensi dengan tiga bagian dari setiap proyek Git: working tree (file-filemu), staging area (index, tempat kamu merakit commit berikutnya), dan Git directory (repositorinya sendiri).

Commit, Branch, dan Merging

Sebuah branch, dalam kata-kata freeCodeCamp, adalah "penunjuk ke sebuah commit." Kedengarannya abstrak, tapi inilah alasan branching di Git sangat powerful: membuat branch tidak menyalin file atau menduplikasi apa pun. Ia hanya membuat penunjuk kecil yang bisa kamu majukan seiring kamu commit. Makanya Git mendorong branching untuk segalanya, fitur baru, perbaikan bug, eksperimen.

Tim biasanya mengikuti alur kerja berbasis branch. GitHub Docs mendeskripsikan GitHub flow sebagai "alur kerja ringan berbasis branch yang mendukung tim dan proyek yang deploy secara rutin": buat branch, lakukan perubahan, buka pull request, review, merge. Merging menggabungkan perubahan dari satu branch ke branch lain, menyatukan dua garis riwayat. Sebagian besar merge terjadi otomatis; ketika Git tidak bisa mendamaikan dua edit yang bertentangan di baris yang sama, ia menandai merge conflict dan meminta manusia memutuskan, yang jauh tidak semenakutkan kedengarannya begitu kamu melihatnya beberapa kali.

Ini contoh alur kerja kecil yang umum dalam lima perintah:

git init # mulai mencatat sebuah folder git add . # stage semua perubahan git commit -m "Add login page" # simpan sebuah snapshot git branch dark-mode # buat branch (penunjuk ke commit) git merge dark-mode # gabungkan branch kembali

Kenapa Git Itu Terdistribusi (dan Kenapa Itu Penting)

Git adalah sistem version control terdistribusi. Atlassian menjelaskan perbedaan kuncinya: dengan Git, setiap salinan repositori milik developer berisi seluruh riwayat proyek, bukan cuma salinan kerja dari file-file terbaru. Itu membuat operasi seperti commit, melihat blame dan diff, atau membaca log jauh lebih cepat dibanding sistem terpusat, karena mesinmu tidak perlu meminta izin ke server. Seperti kata Pro Git, "sebagian besar operasi di Git hanya membutuhkan file dan resource lokal," jadi "hampir tidak ada yang tidak bisa kamu lakukan saat offline."

Inilah juga kenapa model Apa Itu Open Source cocok sekali dengan Git: ribuan orang asing bisa masing-masing memegang salinan lengkap dan terpercaya dari seluruh riwayat sebuah proyek, mengusulkan perubahan dari salinan mereka sendiri, dan maintainer menggabungkan yang bagus. Arsitektur itulah yang memungkinkan proyek seperti Linux kernel menyerap kontribusi dari seluruh dunia tanpa penjaga gerbang pusat yang memperlambat siapa pun.

Aspek

Git (terdistribusi)

VCS terpusat (SVN, CVS)

Detail

Setiap clone menyimpan seluruh riwayat proyek

Hanya server yang menyimpan seluruh riwayat

Commit

Lokal dan instan; kamu bisa bekerja penuh offline

Setiap commit butuh koneksi ke server

Branching

Penunjuk murah, jadi tim branching dan merge terus-menerus

Salinan mahal, jadi branching jarang dan merging menegangkan

Kecepatan

Sebagian besar operasi berjalan di file lokal

Sebagian besar operasi menunggu jaringan

Contoh

Git

Subversion, CVS

Git vs GitHub: Bukan Hal yang Sama

Ini kebingungan yang paling umum, dan panduan pemula GitHub sendiri (oleh Kedasha Kerr, 27 Mei 2024) menyatakannya dengan jelas: "Git is a version control system that tracks file changes and GitHub is a platform that allows developers to collaborate and store their code in the cloud."

Sederhananya: Git adalah tool di komputermu yang mencatat riwayat. GitHub adalah salah satu website tempat kamu bisa mempublikasikan riwayat itu agar orang lain bisa melihat, mengambil, dan berkontribusi. freeCodeCamp menambahkan kalimat yang mudah diingat: "GitHub is not Git. GitHub is just a hosting service," bersama alternatif seperti GitLab dan Bitbucket. GitHub Docs mencatat bahwa di jantung GitHub ada sistem Git yang berjalan lokal di komputermu; mendorong repositori lokal ke remote mempublikasikan commit-mu agar kolaborator bisa mengambil dan mengembangkannya.

Sejarah Singkat: Dibangun untuk Linux Kernel pada 2005

Git dibuat oleh Linus Torvalds pada 2005 untuk pengembangan Linux kernel, setelah tool proprietary yang dipakai komunitas kernel mengubah ketentuan lisensinya. Halaman Git Atlassian mencatat asal-usulnya: "Git is a free and open-source version control system, originally created by Linus Torvalds in 2005."

Ia dibangun untuk kondisi ekstrem. Halaman about Git menyebut Git "built to handle repositories with tens of millions of lines of code from the start." Angkanya mencengangkan: per 2025, source Linux kernel berukuran 1,7 GB, dan seluruh riwayatnya, 1,4 juta commit, terkompresi hanya 5,5 GB. Tool yang dirancang untuk skala itu lebih dari cukup cepat untuk proyekmu.

Popularitas Git meledak di awal 2010-an, ketika layanan hosting seperti GitHub dan GitLab membuat berbagi repositori jadi mudah, dan Git sendiri gratis dan open source di bawah GNU GPL v2.0. Hari ini Atlassian menyebut Git "sistem version control yang paling banyak dipakai di dunia saat ini dan dianggap standar modern untuk pengembangan software."

Kenapa Developer Mengadopsinya

Cerita adopsinya sederhana: Git menghilangkan friksi dari kolaborasi. Kalau kamu baru mulai berkontribusi, panduan kami tentang cara kontribusi open source bisa membawamu ke pekerjaan tech pertama adalah bacaan lanjutan yang pas, karena setiap langkah proses itu berjalan lewat Git.

Checklist kenapa tim memilih Git:

  • Kecepatan. Operasi lokal berarti commit, diff, dan riwayat berjalan instan, bahkan dengan jutaan commit di belakangnya.

  • Branching murah. Branch adalah penunjuk, jadi tim membuat branch untuk setiap fitur dan merge terus-menerus tanpa was-was.

  • Bisa offline. Seluruh riwayat ada di mesinmu, jadi kamu bisa commit, bereksperimen, dan review di pesawat.

  • Integritas. Checksum SHA-1 membuat korupsi diam-diam praktis mustahil.

  • Terbuka dan gratis. GPL v2.0, tanpa biaya lisensi, dan ekosistem hosting dengan paket gratis di mana-mana.

Kuasai alur kerja lima perintah di atas, biasakan branching, dan Git berhenti jadi sumber kecemasan dan menjadi seperti yang dirancang: jaring pengaman yang membiarkanmu mengubah apa pun, karena kamu tahu kamu selalu bisa kembali. Baca artikel ini dalam bahasa Inggris: Git Explained: How Version Control Actually Works.

Pertanyaan yang Sering Diajukan

Apakah Git sama dengan GitHub?

Tidak. Git adalah software version control yang berjalan di komputermu dan mencatat riwayat file. GitHub adalah website yang meng-host repositori Git secara online dan menambahkan fitur kolaborasi seperti pull request, issue, dan wiki. GitLab dan Bitbucket adalah platform hosting alternatif untuk tool Git yang sama.

Apakah saya butuh koneksi internet untuk memakai Git?

Tidak. Git bersifat terdistribusi, jadi commit, branching, merging, dan menjelajah riwayat semuanya bisa dilakukan penuh offline. Kamu hanya butuh internet untuk mendorong commit-mu ke host remote seperti GitHub atau menarik perubahan orang lain.

Apakah Git gratis?

Ya. Git adalah software gratis dan open source, dirilis di bawah GNU General Public License versi 2.0. Kamu bisa memakainya untuk proyek pribadi maupun komersial tanpa biaya.

Apa sebenarnya commit itu?

Commit adalah versi tersimpan dari proyekmu pada satu titik waktu. Ia mencatat snapshot dari semua file-mu, pesan yang mendeskripsikan perubahan, dan hash SHA-1 unik 40 karakter yang mengidentifikasinya. Commit-commit tersambung membentuk seluruh riwayat proyekmu.

Tag: git · version control · open source · developer tools · github

Semua tulisan