Staging area kini menampung delapan perubahan dari chapter git add — keranjangnya penuh, tetapi riwayat belum bertambah. Perintah git commit yang membekukan isi keranjang menjadi snapshot permanen di database Git, lengkap dengan identitas pembuat, waktu, dan pesan yang menjelaskan alasannya. Chapter ini menjalankan commit pertama dari staging area, membedah keluarannya baris demi baris, lalu mencoba tiga variasi penting: pesan multi-baris, commit tanpa perubahan, dan pintasan -a yang melompati git add.

Commit Pertama dari Staging Area #

Satu berkas di keranjang memang belum layak dicatat: draf-catatan.txt adalah draf rapat pekan depan, bukan bagian dokumentasi. Kita keluarkan dulu — commit hanya membekukan isi staging area, jadi berkas yang dikeluarkan tidak akan ikut:

bash
git restore --staged draf-catatan.txt
git status -s

Output yang Dihasilkan:

text
A  CATATAN-RILIS.md
M  README.md
A  catatan-latihan.txt
A  docs/agenda.txt
A  docs/faq.md
A  docs/panduan-instalasi.md
M  glosarium.md
?? draf-catatan.txt

Tujuh perubahan siap dicatat. Commit dibuat dengan opsi -m (message) yang membawa pesan satu baris:

bash
git commit -m "Tambah panduan dan catatan rilis"

Output yang Dihasilkan:

text
[main ea43d56] Tambah panduan dan catatan rilis
 7 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100644 CATATAN-RILIS.md
 create mode 100644 catatan-latihan.txt
 create mode 100644 docs/agenda.txt
 create mode 100644 docs/faq.md
 create mode 100644 docs/panduan-instalasi.md

Hash ea43d56 akan berbeda di komputer pembaca karena hash dihitung dari isi commit — konten, identitas, dan waktu pembuatannya.

Membedah Keluaran Commit #

Tujuh baris keluaran di atas sebenarnya ringkasan lengkap snapshot yang barusan tersimpan. Mari kita bedah satu per satu:

BarisArti
[main ea43d56] Tambah panduan dan catatan rilisCommit tercatat pada branch main dengan hash pendek ea43d56, disusul judul pesannya
7 files changed, 19 insertions(+), 1 deletion(-)Dibandingkan commit sebelumnya: tujuh berkas berubah, 19 baris ditambahkan, satu baris dihapus
create mode 100644 CATATAN-RILIS.mdBerkas baru pertama kali dilacak; 100644 adalah mode izin berkas reguler
create mode 100644 catatan-latihan.txtBerkas latihan ikut tercatat sebagai berkas baru
create mode 100644 docs/agenda.txtBaris create mode hanya muncul untuk berkas yang belum pernah ada di riwayat
create mode 100644 docs/faq.mdSuntingan dan penghapusan tidak memunculkan baris ini — hanya berkas baru
create mode 100644 docs/panduan-instalasi.mdREADME.md dan glosarium.md berubah tanpa baris create mode karena sudah terlacak

Angka ringkas insertions(+) dan deletions(-) memakai tanda plus dan minus yang sama dengan tanda pada git diff — bahasan chapter git diff .

Status Setelah Commit #

Berkas apa yang tersisa setelah snapshot dibekukan? git status menjawabnya:

bash
git status

Output yang Dihasilkan:

text
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        draf-catatan.txt

nothing added to commit but untracked files present (use "git add" to track)

Pengeluaran draf-catatan.txt tadi terbukti: berkas itu tetap utuh di working tree sebagai untracked. Commit hanya merekam isi staging area — tidak menyentuh berkas di luar keranjang, tidak juga menghapusnya.

Pesan Multi-Baris dengan Dua -m #

Pesan commit yang baik sering butuh lebih dari satu baris: judul ringkas ditambah paragraf penjelas. Opsi -m boleh diulang — setiap -m menjadi satu paragraf terpisah. Kita tambahkan tanya jawab baru pada FAQ lalu commit dengan pesan dua paragraf:

bash
printf '\nQ: Bagaimana mulai berkontribusi?\nA: Mulai dari docs/panduan-instalasi.md.\n' >> docs/faq.md
git add docs/faq.md
git commit -m "Tambah tanya jawab kontribusi" -m "Bagian FAQ kini menjelaskan cara mulai berkontribusi dokumen."

Output yang Dihasilkan:

text
[main b1b2ec8] Tambah tanya jawab kontribusi
 1 file changed, 3 insertions(+)

Keluaran ringkas commit hanya menampilkan baris pertama pesan — judulnya. Bentuk lengkap pesan dua paragraf terlihat pada riwayat:

bash
git log -1

Output yang Dihasilkan:

text
commit b1b2ec81662656f5e226cd2948b4f094a17e8f70
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:50:00 2026 +0700

    Tambah tanya jawab kontribusi
    
    Bagian FAQ kini menjelaskan cara mulai berkontribusi dokumen.

Pesan tersimpan sebagai judul, satu baris kosong, lalu isi — persis format yang dianjurkan praktik industri. Pesan juga bisa ditulis lewat editor teks dengan git commit tanpa -m; pengaturan editornya dibahas pada chapter Konfigurasi Editor , sedangkan panduan menulis pesan yang baik ada di section Commit dan Riwayat .

Menandai Titik Tanpa Perubahan #

Git menolak commit ketika staging area kosong dan working tree bersih — kecuali kita memang sengaja ingin membuat penanda. Opsi --allow-empty mengizinkannya:

bash
git commit --allow-empty -m "Tandai mulai perapian dokumentasi"

Output yang Dihasilkan:

text
[main 98ebe8e] Tandai mulai perapian dokumentasi

Perhatikan keluarannya: tanpa baris files changed karena memang tidak ada berkas yang berubah. Commit kosong seperti ini dipakai sebagai penanda struktural — misalnya titik sebelum eksperimen besar atau batas antar fase kerja — sehingga mudah ditemukan kembali di riwayat.

Pintasan -a: Melompati git add #

Untuk suntingan pada berkas yang sudah terlacak, opsi -a (all) memangkas satu langkah: Git men-stage seluruh suntingan berkas terlacak lebih dulu, lalu langsung commit. Kita tambahkan entri kedua pada catatan rilis tanpa git add:

bash
printf '%s\n' '- 2026-10-13: perbaiki tautan panduan instalasi' >> CATATAN-RILIS.md
git status -s

Output yang Dihasilkan:

text
 M CATATAN-RILIS.md
?? draf-catatan.txt

Suntingan masih di working tree (kolom Y). Dengan -a, keduanya digabung jadi satu langkah — -am adalah gabungan opsi -a dan -m:

bash
git commit -am "Catat perbaikan tautan panduan"

Output yang Dihasilkan:

text
[main 44ce6c1] Catat perbaikan tautan panduan
 1 file changed, 1 insertion(+)

Batasan -a penting dipahami: pintasan ini setara dengan git add -u lalu commit, sehingga berkas baru tidak pernah ikut. draf-catatan.txt membuktikannya — status setelah commit masih memuatnya sebagai untracked:

bash
git status

Output yang Dihasilkan:

text
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        draf-catatan.txt

nothing added to commit but untracked files present (use "git add" to track)

Riwayat repository kini berisi enam commit — cukup untuk dijelajahi:

bash
git log --oneline

Output yang Dihasilkan:

text
44ce6c1 Catat perbaikan tautan panduan
98ebe8e Tandai mulai perapian dokumentasi
b1b2ec8 Tambah tanya jawab kontribusi
ea43d56 Tambah panduan dan catatan rilis
462b791 Tambah glosarium istilah
642e91f Tambah README dokumentasi

Enam judul itu adalah hasil kerja kita sejak chapter pertama section ini. Daftar lengkap opsi git commit — termasuk --amend yang memperbaiki commit terakhir — terdokumentasi pada dokumentasi git commit , dan dibahas lebih jauh di section Commit dan Riwayat .

Snapshot tersimpan, pesan tertulis — tetapi daftar judul saja belum cukup ketika kita perlu memahami apa yang berubah pada tiap commit. Cara membaca riwayat yang lebih kaya ada di chapter berikutnya: git log .