Hampir semua aplikasi pengolah teks punya tombol undo (Ctrl+Z). Fitur ini menyimpan riwayat perubahan selama berkas masih terbuka. Begitu berkas ditutup, riwayat itu hilang, dan Anda tidak bisa lagi kembali ke kondisi kemarin. Karena itu banyak orang menyimpan salinan manual seperti laporan-final.docx, laporan-final-revisi.docx, lalu laporan-final-revisi-2.docx.

Cara manual tersebut masih bisa dipakai untuk satu dokumen. Namun, sebuah aplikasi bisa terdiri dari ratusan berkas yang diubah beberapa orang sekaligus. Di titik inilah Git dibutuhkan. Git adalah perangkat lunak yang mencatat setiap perubahan pada sekumpulan berkas, sehingga Anda bisa melihat, membandingkan, dan kembali ke versi mana pun kapan saja.

Apa Itu Git?

Git adalah version control system (sistem pengendali versi) terdistribusi yang gratis dan open source. Situs resminya menyebut Git dirancang untuk menangani proyek kecil hingga sangat besar dengan cepat dan efisien. Per 28 September 2026, versi stabil terbarunya adalah Git 2.56.0.

Version control adalah sistem yang menyimpan riwayat perubahan berkas dari waktu ke waktu. Sistem ini menjawab tiga pertanyaan: apa yang berubah, siapa yang mengubah, dan kapan perubahan itu terjadi. Git bukan satu-satunya version control system. Ada juga Subversion (SVN) dan Mercurial, tetapi Git kini menjadi standar industri.

Survei Stack Overflow 2022 menunjukkan dominasi tersebut. Dari 71.379 responden yang menjawab, 93,87% memakai Git. Pengguna SVN hanya 5,18%, sementara Mercurial 1,13%.

Git dirilis dengan lisensi GNU GPL versi 2, sehingga kodenya bebas dipelajari dan dimodifikasi. Proyeknya bernaung di bawah Software Freedom Conservancy, organisasi nirlaba yang menaungi sejumlah proyek open source.

Asal-Usul Git dari Proyek Kernel Linux

Git lahir dari kebutuhan para pengembang kernel Linux. Sejak 2002, mereka memakai BitKeeper, sebuah version control berbayar yang boleh dipakai gratis oleh komunitas. Pada 2005, hubungan komunitas dengan perusahaan pembuatnya memburuk dan status gratis itu dicabut.

Linus Torvalds, pencipta Linux, lalu memimpin pembuatan alat penggantinya. Ada lima target desain: cepat, sederhana, mendukung ribuan cabang kerja paralel, terdistribusi penuh, dan sanggup menangani proyek sebesar kernel Linux. Kelima target itulah yang masih menjadi ciri Git sampai sekarang.

Perlu diketahui, Git bukan singkatan. Torvalds memilih nama itu sendiri dan menjuluki alatnya "the stupid content tracker". Berbagai kepanjangan yang beredar di internet hanyalah tafsiran, bukan arti resmi.

Cara Kerja Git: Snapshot, Hash, dan Tiga Area Kerja

Git menyimpan riwayat dalam bentuk snapshot (potret utuh kondisi proyek), bukan daftar selisih per berkas. Setiap kali Anda menyimpan perubahan, Git memotret seluruh isi proyek pada saat itu. Berkas yang tidak berubah tidak disalin ulang, cukup ditautkan ke versi identik yang sudah tersimpan. Karena itu ukuran riwayat tetap hemat walaupun potretnya utuh.

Satu potret tersebut disebut commit. Setiap commit diberi identitas berupa hash SHA-1, yaitu deretan 40 karakter heksadesimal seperti 24b9da6552252987aa493b52f8696cd6d3b00373. Hash dihitung dari isi commit itu sendiri. Kalau satu karakter saja berubah atau rusak, hash-nya tidak lagi cocok dan Git langsung mengetahuinya.

Sebelum menjadi commit, perubahan melewati tiga area kerja:

  1. Working tree: Folder proyek yang Anda lihat dan sunting sehari-hari. Perubahan di sini berstatus modified.
  2. Staging area: Area persiapan yang berisi daftar perubahan untuk commit berikutnya. Perubahan di sini berstatus staged.
  3. Repository (.git): Folder tersembunyi yang menyimpan seluruh commit. Perubahan yang sudah masuk ke sini berstatus committed.

Staging area mungkin terasa seperti langkah tambahan yang tidak perlu. Fungsinya justru penting. Misalkan Anda memperbaiki bug login sekaligus mengganti warna tombol dalam satu sesi kerja. Dengan staging area, kedua perubahan itu bisa disimpan sebagai dua commit terpisah. Riwayat pun tetap mudah dibaca, dan perbaikan bug bisa dibatalkan tanpa ikut membatalkan perubahan warna.

Tiga area kerja Git: working tree (modified), lalu git add ke staging area (staged), lalu git commit ke repository .git.
Tiga area kerja Git: working tree (modified), lalu git add ke staging area (staged), lalu git commit ke repository .git.

Kenapa Git Disebut Terdistribusi

Version control generasi lama seperti SVN bersifat terpusat. Riwayat hanya tersimpan di satu server, sehingga setiap orang harus terhubung ke server itu untuk menyimpan perubahan. Kalau server mati, tidak ada yang bisa menyimpan perubahan ke riwayat sampai server pulih.

Git bekerja dengan cara berbeda. Setiap salinan repository menyimpan riwayat lengkap proyek. Akibatnya, hampir semua pekerjaan berjalan tanpa internet: membuat commit, membaca riwayat, atau membandingkan versi. Koneksi baru diperlukan saat Anda ingin bertukar commit dengan orang lain. Setiap anggota tim pun sebenarnya memegang cadangan lengkap repository tersebut.

Version control terpusat seperti SVN menyimpan riwayat hanya di server; di Git, setiap laptop memegang riwayat lengkap.
Version control terpusat seperti SVN menyimpan riwayat hanya di server; di Git, setiap laptop memegang riwayat lengkap.

Fungsi Git bagi Developer dan Tim

Kemampuan mencatat snapshot tadi melahirkan beberapa fungsi Git yang dipakai setiap hari:

  1. Kembali ke versi sebelumnya: Kalau perubahan hari ini merusak aplikasi, Anda bisa melihat kondisi kemarin atau membatalkan commit tertentu tanpa menebak-nebak.
  2. Bereksperimen di cabang terpisah: Fitur baru dikerjakan di branch (cabang kerja) sendiri. Versi utama tetap aman sampai fitur itu benar-benar siap.
  3. Menggabungkan pekerjaan banyak orang: Lima developer bisa mengubah proyek yang sama secara bersamaan, lalu Git menyatukan hasilnya lewat proses merge.
  4. Melacak asal-usul perubahan: Perintah git log dan git blame menunjukkan siapa yang mengubah baris tertentu dan kapan. Ini sangat membantu saat menelusuri penyebab bug.
  5. Menjadi titik awal deploy: Banyak alur deployment dipicu oleh commit baru, misalnya lewat Jenkins atau GitHub Actions. Dengan begitu, kode yang tayang selalu berasal dari versi yang tercatat.

Git dan GitHub Bukan Hal yang Sama

Git adalah program yang berjalan di komputer Anda. GitHub, GitLab, dan Bitbucket adalah layanan web untuk menitipkan repository Git agar bisa diakses tim dari mana saja. Ketiga layanan itu bergantung pada Git, sedangkan Git tetap bisa dipakai tanpa satu pun dari mereka.

Penjelasan lengkap tentang perbedaan keduanya, termasuk alur fork dan pull request, sudah kami bahas di artikel GitHub adalah.

Kelemahan Git yang Perlu Anda Pertimbangkan

Git memang menjadi standar, tetapi ada beberapa kelemahan yang sebaiknya Anda ketahui sejak awal:

  1. Kurva belajar cukup curam: Istilah seperti staging, HEAD, rebase, dan detached HEAD membingungkan pemula. Pesan galatnya pun tidak selalu ramah.
  2. Kurang cocok untuk berkas biner besar: Video, berkas desain, atau dataset tidak bisa dibandingkan baris per baris, dan setiap versinya memperbesar repository. Untuk kebutuhan ini tersedia Git LFS (Large File Storage). GitHub sendiri menolak berkas di atas 100 MiB.
  3. Rahasia yang ter-commit sulit dihapus: Password atau API key yang pernah masuk commit tetap ada di riwayat, meskipun berkasnya dihapus pada commit berikutnya. Satu-satunya langkah aman adalah mengganti rahasia tersebut.
  4. Bukan pengganti backup: Repository yang hanya ada di satu laptop tetap hilang bersama laptopnya. Database, berkas unggahan pengguna, dan konfigurasi server juga perlu backup tersendiri.
  5. Konflik merge tetap butuh manusia: Kalau dua orang mengubah baris yang sama, Git tidak bisa memutuskan versi mana yang benar. Anda harus memilihnya sendiri.

Cara Mulai Menggunakan Git

Langkah berikut berjalan sepenuhnya di komputer Anda, tanpa akun online apa pun. Saat artikel ini ditulis, kami mengujinya pada Git 2.54.0.

Langkah #1: Memasang Git

Pengguna Windows cukup mengunduh Git for Windows dari halaman unduhan resmi Git, lalu menjalankan installer-nya dengan pilihan bawaan. Paket ini sudah menyertakan Git Bash dan Git GUI.

Git Bash adalah terminal yang menjalankan shell Bash di Windows. Dengan Git Bash, perintah Git dan perintah Linux dasar seperti ls atau cd bisa dipakai persis seperti di Linux. Kalau Anda pernah membaca tentang bash script, lingkungannya sama.

Di macOS, Git tersedia lewat Xcode Command Line Tools. Pasang dengan perintah berikut, atau gunakan brew install git kalau Anda memakai Homebrew:

Bash
xcode-select --install

Di Ubuntu atau Debian, pasang Git lewat package manager:

Bash
sudo apt install git

Setelah terpasang, pastikan Git sudah dikenali dengan menjalankan git --version. Terminal akan menampilkan nomor versi yang terpasang.

Langkah #2: Mengatur Nama dan Email

Setiap commit mencatat nama dan email pembuatnya. Atur keduanya sekali saja untuk seluruh proyek di komputer Anda:

Bash
git config --global user.name "Nama Anda"
git config --global user.email "anda@contoh.id"
git config --global init.defaultBranch main

Baris ketiga membuat cabang utama di setiap repository baru bernama main. Nama ini sudah menjadi kebiasaan umum dan kelak menjadi bawaan Git.

Langkah #3: Membuat Repository

Buat folder proyek, masuk ke dalamnya, lalu ubah folder itu menjadi repository:

Bash
mkdir latihan-git
cd latihan-git
git init

Git akan membuat subfolder tersembunyi .git. Mulai saat ini, seluruh riwayat proyek tersimpan di dalam folder tersebut.

Langkah #4: Menyimpan Perubahan Pertama

Buat sebuah berkas, lalu periksa statusnya:

Bash
echo "# Catatan Proyek" > README.md
git status

Git akan melaporkan README.md sebagai untracked file, artinya berkas itu belum dipantau. Masukkan berkas ke staging area, lalu simpan sebagai commit:

Bash
git add README.md
git commit -m "Tambah README"

Output-nya menampilkan potongan hash commit, misalnya [main (root-commit) af53af9] Tambah README. Tujuh karakter tersebut adalah awal dari hash 40 karakter yang dibahas sebelumnya.

Langkah #5: Membaca Riwayat dan Perbedaan

Ubah isi README.md, lalu lihat apa saja yang berubah sebelum menyimpannya:

Bash
git diff

Baris yang diawali tanda + adalah tambahan, sedangkan tanda - menandai baris yang dihapus. Simpan perubahan itu dengan git add . dan git commit -m "Lengkapi README". Setelah itu, tampilkan riwayat ringkasnya:

Bash
git log --oneline

Setiap baris berisi satu commit, dengan commit terbaru di urutan paling atas.

Langkah #6: Mencoba Branch lalu Menggabungkannya

Buat cabang baru untuk fitur, kerjakan perubahan di sana, lalu kembali ke cabang utama:

Bash
git switch -c fitur-kontak
echo "Kontak: anda@contoh.id" > kontak.txt
git add kontak.txt
git commit -m "Tambah halaman kontak"
git switch main

Saat kembali ke main, berkas kontak.txt menghilang dari folder karena cabang utama belum memilikinya. Gabungkan cabang fitur dengan perintah berikut:

Bash
git merge fitur-kontak

Git akan menampilkan pesan Fast-forward. Artinya, main belum berubah sejak cabang fitur dibuat, sehingga Git cukup memajukan penunjuk main ke commit terbaru. Kalau kedua cabang sama-sama punya commit baru, Git membuat satu merge commit yang menyatukan keduanya.

Branch dan merge fast-forward di Git: main semula di 1924b30, fitur-kontak di 9ae45cb, lalu main maju ke 9ae45cb.
Branch dan merge fast-forward di Git: main semula di 1924b30, fitur-kontak di 9ae45cb, lalu main maju ke 9ae45cb.

Langkah berikutnya adalah mengirim repository ini ke layanan online agar bisa diakses tim. Caranya kami bahas di bagian tutorial artikel GitHub.

Ringkasan Perintah Dasar Git

Tabel berikut merangkum perintah yang dipakai di atas, ditambah tiga perintah untuk bekerja dengan repository online:

PerintahFungsi
git initMembuat repository baru di folder aktif
git statusMenampilkan berkas yang berubah dan yang sudah di-stage
git add <berkas>Memasukkan perubahan ke staging area
git commit -m "pesan"Menyimpan isi staging area sebagai commit
git diffMenampilkan perubahan yang belum di-stage
git log --onelineMenampilkan riwayat commit secara ringkas
git switch -c <nama>Membuat branch baru lalu pindah ke sana
git merge <nama>Menggabungkan branch lain ke branch aktif
git clone <url>Menyalin repository online beserta seluruh riwayatnya
git pushMengirim commit lokal ke repository online
git pullMenarik commit terbaru dari repository online

Kebiasaan yang Membuat Riwayat Git Mudah Dibaca

Riwayat Git hanya berguna kalau bisa dibaca ulang beberapa bulan kemudian. Lima kebiasaan berikut cukup untuk menjaganya:

  1. Satu commit untuk satu perubahan logis: Perbaikan bug dan fitur baru disimpan sebagai commit terpisah, walaupun dikerjakan pada hari yang sama.
  2. Judul commit maksimal 50 karakter: Dokumentasi resmi Git menyarankan baris pertama pesan commit tidak lebih dari 50 karakter. Tulis apa yang berubah, misalnya "Perbaiki validasi email di form daftar", bukan "update".
  3. Buat .gitignore sejak commit pertama: Berkas ini berisi daftar yang tidak boleh dipantau Git, seperti .env berisi password, node_modules/, atau vendor/. Mencegah lebih mudah daripada membersihkan riwayat.
  4. Jauhkan berkas di atas 50 MB dari repository: GitHub mulai memberi peringatan pada ukuran ini. Simpan berkas besar di Git LFS atau penyimpanan terpisah.
  5. Commit sebelum berhenti bekerja: Perubahan yang belum di-commit tidak terlindungi. Commit kecil di akhir sesi jauh lebih aman daripada satu commit besar seminggu sekali.

Deploy Website Memakai Git di cPanel

Git tidak hanya berguna di komputer developer. cPanel menyediakan menu Git Version Control untuk membuat atau menyalin repository langsung di akun hosting. Fitur ini memungkinkan website diperbarui dari repository, bukan lagi dengan mengunggah berkas satu per satu lewat File Manager.

Alurnya sederhana. Anda menyalin repository dari GitHub atau GitLab ke akun cPanel. Setiap ada commit baru, klik Update from Remote untuk menarik perubahan, lalu Deploy HEAD Commit untuk menyalin berkas ke folder website. Folder .git di akun hosting otomatis tertutup dari akses publik, sehingga riwayat kode Anda tidak bisa diunduh pengunjung.

Deploy Git di cPanel: push ke GitHub atau GitLab, Update from Remote ke hosting, lalu Deploy HEAD Commit ke public_html.
Deploy Git di cPanel: push ke GitHub atau GitLab, Update from Remote ke hosting, lalu Deploy HEAD Commit ke public_html.

Langkah deploy diatur oleh berkas .cpanel.yml di folder teratas repository. Contoh berikut menyalin dua berkas ke folder public_html:

YAML
---
deployment:
  tasks:
    - export DEPLOYPATH=/home/akun/public_html/
    - /bin/cp index.html $DEPLOYPATH
    - /bin/cp style.css $DEPLOYPATH

Ganti akun dengan username cPanel Anda. Deploy hanya berjalan kalau working tree di akun hosting bersih, artinya tidak ada berkas yang diubah langsung di server tanpa commit.

Kalau akun Anda punya akses SSH, ada cara yang lebih cepat. Kirim commit langsung ke repository di akun cPanel dengan git push, lalu cPanel menjalankan .cpanel.yml secara otomatis. Pemicunya adalah post-receive hook, yaitu skrip yang berjalan setiap kali repository menerima commit baru.

Ada satu syarat yang perlu diperhatikan. Tanpa akses shell, menu ini hanya bisa membuat, menyalin, dan menampilkan repository. Untuk menyalin repository privat lewat SSH, Anda membutuhkan akses SSH di cPanel. Pastikan Anda memilih paket web hosting yang menyediakan akses SSH kalau berencana memakai alur ini.

Git 3.0: Perubahan yang Sedang Disiapkan

Pengembang Git sedang menyiapkan versi 3.0, meskipun belum ada tanggal rilisnya. Beberapa perubahan utamanya sudah diumumkan di dokumentasi resmi:

  1. SHA-256 menjadi bawaan repository baru: SHA-1 sudah dinyatakan usang oleh NIST sejak 2011. Repository SHA-1 lama tetap didukung.
  2. Cabang utama bernama main: Git sudah memperingatkan perubahan ini sejak 2020.
  3. Format penyimpanan ref baru bernama reftable: Format ini menggantikan penyimpanan ref berbasis berkas pada repository baru.

Bagi pemula, dampaknya hampir tidak terasa. Perintah sehari-hari seperti add, commit, switch, dan merge tetap sama.

Pertanyaan Seputar Git

Apakah Git berbayar?

Tidak. Git gratis dan open source dengan lisensi GPL versi 2, untuk penggunaan pribadi maupun komersial. Biaya baru muncul kalau Anda memakai paket berbayar dari layanan penyimpanan seperti GitHub atau GitLab.

Apakah ada aplikasi Git untuk Android?

Git tidak tersedia sebagai aplikasi resmi untuk Android. Cara yang umum dipakai adalah memasang Git di dalam Termux dengan perintah pkg install git. Setelah itu, perintah Git berjalan sama seperti di Linux.

Git singkatan dari apa?

Git bukan singkatan. Nama ini dipilih Linus Torvalds saat menulis versi pertamanya pada 2005. Kepanjangan yang sering beredar hanyalah tafsiran, bukan arti resmi.

Apakah Git hanya untuk programmer?

Tidak. Git cocok untuk berkas teks apa pun yang sering diubah, seperti dokumentasi, naskah buku berformat Markdown, atau konfigurasi server. Untuk dokumen Word atau berkas desain, manfaatnya terbatas karena Git tidak bisa menampilkan perbedaan isinya baris per baris.

Kesimpulan

Secara ringkas, pengertian Git adalah version control system yang mencatat riwayat proyek dalam bentuk snapshot. Setiap commit ditandai dengan hash, dan setiap komputer menyimpan salinan riwayat lengkap. Tiga area kerjanya, yaitu working tree, staging area, dan repository, membuat setiap perubahan bisa dipilah, ditelusuri, dan dibatalkan dengan aman.

Git layak dipakai untuk proyek apa pun yang berisi berkas teks, sekalipun Anda bekerja sendirian. Untuk berkas biner besar, gunakan Git LFS atau penyimpanan terpisah. Jangan lupakan juga backup, karena Git bukan penggantinya.

Semoga artikel ini membantu.