Tiga Area Git: Working Directory, Staging, Repository
Memahami alur perubahan sebelum menjadi commit, dan memakai git add serta git status dengan benar.
Model mental terpenting di Git
Perubahan tidak langsung menjadi riwayat. Ia melewati tiga area:
| Area | Isi | Pindah ke area berikutnya dengan |
|---|---|---|
| Working directory (folder kerja) | Berkas yang kamu edit sehari-hari | git add |
| Staging area (index) | Perubahan yang akan masuk ke commit berikutnya | git commit |
| Repository (.git) | Riwayat commit permanen | — |
Analogi: kamu berkemas untuk pindahan. Barang-barang di rumah = working directory. Barang yang sudah kamu masukkan ke dalam kardus = staging area. Kardus yang sudah ditutup, dilem, dan diberi label = commit.
Kenapa ada staging area?
Staging area memberi kendali. Misalnya kamu mengedit 5 berkas: 2 untuk perbaikan bug, 3 untuk fitur baru. Kamu bisa add hanya 2 berkas bug, commit "Perbaiki bug", lalu mengurus sisanya di commit terpisah. Riwayat jadi rapi dan mudah dipahami.
Empat status sebuah berkas
- Untracked — berkas baru yang belum dikenal Git.
- Modified — berkas yang sudah dilacak dan berubah, belum di-stage.
- Staged — perubahan sudah masuk staging, siap di-commit.
- Committed — perubahan sudah tersimpan aman di riwayat.
Perintah git add
git add halo.txt # satu berkas
git add halo.txt data.txt # beberapa berkas
git add src/ # satu folder
git add *.txt # pola
git add . # semua perubahan di folder ini
git add -A # semua perubahan di seluruh repo (termasuk penghapusan)
Membaca git status
On branch main
Changes to be committed: <- STAGED
(use "git restore --staged <file>..." to unstage)
new file: halo.txt
Untracked files: <- UNTRACKED
(use "git add <file>..." to include in what will be committed)
catatan.txt
Mode ringkas: git status -s. Kolom kiri = staging, kolom kanan = working directory:
A halo.txt # A = baru, sudah staged
M data.txt # M di kolom kanan = diubah, belum staged
M app.txt # M di kolom kiri = diubah, sudah staged
?? catatan.txt # ?? = untracked
Berkas yang diubah lagi setelah di-add
Staging menyimpan snapshot saat kamu add. Jika kamu mengedit berkas setelah git add, berkas itu muncul di dua daftar: versi lama di staged, versi baru di "not staged". Jalankan git add lagi untuk memperbarui staging.
Menulis berkas di simulator
echo "Halo Git" > halo.txt # membuat / menimpa berkas
echo "baris baru" >> halo.txt # menambah di akhir