Cara Kerja Git

Cara Kerja Git πŸ”„

Memahami cara kerja internal Git adalah kunci agar tidak bingung saat menggunakan perintah-perintahnya. Git membagi alur kerjamu menjadi tiga area utama.


Tiga Area Utama Git

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Komputer Lokal                         β”‚
β”‚                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   git add   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  git commit   β”‚
β”‚  β”‚  Working  β”‚ ──────────→ β”‚  Staging  β”‚ ────────────→ β”‚
β”‚  β”‚   Tree    β”‚             β”‚   Area    β”‚               β”‚
β”‚  β”‚           β”‚ ←────────── β”‚  (Index)  β”‚               β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  git restoreβ””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚
β”‚                                    ↑ ↓                  β”‚
β”‚                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚                              β”‚ Local Repo  β”‚           β”‚
β”‚                              β”‚  (.git/)    β”‚           β”‚
β”‚                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

1. Working Tree (Working Directory) Folder proyekmu yang terlihat di file explorer β€” tempat kamu mengedit file sehari-hari. Git memantau setiap perubahan yang terjadi di sini.

2. Staging Area (Index) Area perantara sebelum commit. Kamu memilih perubahan mana yang ingin dimasukkan ke commit berikutnya dengan git add. Anggap ini sebagai "draft" commitmu.

3. Local Repository Database Git yang tersimpan di folder .git/. Setiap git commit menyimpan snapshot permanen dari staging area ke sini.


Siklus Hidup File di Git

Setiap file dalam repositori Git memiliki status:

                    git add
Untracked ─────────────────────→ Staged
    ↑                               β”‚
    β”‚                          git commit
    β”‚                               β”‚
    β”‚  git rm        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β†’ Unmodified
    └─────────────── β”‚         (sudah di-commit)
                     β”‚               β”‚
                     β”‚           (edit file)
                     β”‚               ↓
                     └────────── Modified
                                     β”‚
                                 git add
                                     ↓
                                  Staged
  • Untracked β€” file baru yang belum pernah dikenal Git
  • Unmodified β€” file yang sudah di-commit dan belum diubah
  • Modified β€” file yang sudah di-commit tapi kemudian diedit
  • Staged β€” file yang sudah git add dan siap di-commit

Snapshot, Bukan Delta

Berbeda dengan sistem lain yang menyimpan perbedaan antar versi (delta), Git menyimpan snapshot β€” foto lengkap dari seluruh proyek setiap kali commit:

Sistem Delta (SVN):
Versi 1: file-A (penuh)
Versi 2: Ξ” perubahan di file-A
Versi 3: Ξ” perubahan di file-A
(untuk melihat versi 3 harus rekonstruksi dari v1 + delta)

Git (Snapshot):
Versi 1: snapshot seluruh proyek
Versi 2: snapshot seluruh proyek
Versi 3: snapshot seluruh proyek
(akses langsung ke versi mana pun)

File yang tidak berubah hanya disimpan sebagai pointer ke snapshot sebelumnya β€” efisien secara penyimpanan.


Integritas Data dengan SHA-1

Setiap commit, file, dan tree di Git diberi hash SHA-1 β€” sebuah identifikasi unik sepanjang 40 karakter:

commit a3f5c2b8e1d4f7a9c0b2e5f8a1d3c6b9e2f5a8d1
Author: Budi Santoso <[email protected]>
Date:   Mon Apr 27 09:30:00 2026

    Tambah halaman kontak

Jika ada satu karakter pun yang berubah di file, hash-nya akan berbeda total. Ini menjamin integritas β€” kamu tahu persis jika ada data yang rusak atau dimanipulasi.


Contoh Alur Kerja Sederhana

# 1. Edit file index.html di working tree
# 2. Pilih perubahan yang mau di-commit
git add index.html

# 3. Simpan snapshot permanen ke repository
git commit -m "Tambah navigasi header"

# Alur:
# Working Tree β†’ (git add) β†’ Staging Area β†’ (git commit) β†’ Repository

πŸ’‘ Tips: Staging area adalah fitur khas Git yang membedakannya dari sistem lain. Manfaatkan ini untuk membuat commit yang terfokus β€” satu commit untuk satu perubahan logis. Jangan asal git add . lalu commit semua sekaligus tanpa memilah terlebih dahulu. 🎯

Informasi Kursus

Kursus

Git Dasar

Kategori

Pengenalan Git

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini