Git Add & Commit — Git

Staging area adalah tempat persiapan sebelum commit. Alurnya: Working Directory → Staging Area → Repository (edit) (git add) (git commit) git add —…

Commit adalah snapshot isi proyekmu pada satu saat, lengkap dengan pesan. Tapi Git gak langsung memotret semua file: kamu pilih dulu file mana yang ikut, lewat staging area. Mirip foto bersama. Semua orang ada di ruangan, kamu suruh beberapa naik ke panggung (git add), lalu jepret (git commit). Yang gak naik panggung gak ikut di foto, dan fotonya diberi keterangan: pesan commit.

🧪 Tebakan cepat: di folder ada index.html dan style.css. Kamu cuma menjalankan git add index.html, lalu commit. style.css ikut tersimpan di commit itu? Tebak dulu, jawabannya ada di bagian "git add: pilih yang ikut".

Tiga tempat file kamu

Working directory  --git add-->  Staging area  --git commit-->  Repository
(folder kerjamu)                 (yang dipilih)                 (riwayat commit)

git add: pilih yang ikut

Repo baru saja di-init, isinya index.html dan style.css, dua-duanya untracked. Ada tiga cara memilih:

git add index.html             # satu file
git add index.html style.css   # beberapa file sekaligus
git add .                      # semua file baru atau berubah di folder ini

Pakai yang terakhir, lalu cek hasilnya:

$ git add .
$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   index.html
	new file:   style.css

Kalau tadi kamu cuma git add index.html, commit berikutnya cuma berisi index.html. style.css tetap ada di folder, gak ikut tersimpan, dan masih muncul sebagai untracked di git status. Itu jawaban tebakannya.

git commit: simpan snapshot

$ git commit -m "commit pertama"
[main (root-commit) 4c908fe] commit pertama
 2 files changed, 2 insertions(+)
 create mode 100644 index.html
 create mode 100644 style.css
$ git status
On branch main
nothing to commit, working tree clean

Tanpa -m, git commit membuka text editor (biasanya Vim atau nano) untuk menulis pesannya. Di Vim, tekan i untuk mengetik, lalu Esc dan :wq untuk menyimpan dan keluar. Terminal latihan meniru editor itu: tanpa -m, isi editornya tampil, lalu baris berikutnya yang kamu ketik jadi pesannya. Ketik :q! untuk keluar tanpa pesan, dan Git membatalkan commit-nya: Aborting commit due to empty commit message.

Pesan commit yang baik

Pesan commit dibaca orang, termasuk kamu sendiri, berbulan-bulan kemudian. Tulis singkat, dan sebut apa yang berubah:

Kurang jelas Lebih baik
update tambah form kontak di halaman utama
fix perbaiki tombol login yang gak bisa diklik di HP
asdf ganti warna judul jadi biru

Banyak tim memakai bentuk perintah ("tambah", "perbaiki", "ganti"), seperti melengkapi kalimat "commit ini akan ...".

⚠️ Jebakan yang sering ketemu

TL;DR: File berjalan dari working directory ke staging area (git add) lalu ke repository (git commit). Staging area, disebut juga index, adalah area perantara: cuma isinya yang ikut commit. git add . memilih semua file baru atau berubah. git commit -m "pesan" menyimpan snapshot dengan pesan dalam tanda kutip; tanpa -m, Git membuka text editor. Commit tanpa git add gak menyimpan apa-apa. Tulis pesan yang menyebut apa yang berubah, dan cek dengan git status sampai working tree clean.

Yang akan kamu pelajari