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:
git restore --staged draf-catatan.txt
git status -sOutput yang Dihasilkan:
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.txtTujuh perubahan siap dicatat. Commit dibuat dengan opsi -m (message) yang membawa pesan satu baris:
git commit -m "Tambah panduan dan catatan rilis"Output yang Dihasilkan:
[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.mdHash 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:
| Baris | Arti |
|---|---|
[main ea43d56] Tambah panduan dan catatan rilis | Commit 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.md | Berkas baru pertama kali dilacak; 100644 adalah mode izin berkas reguler |
create mode 100644 catatan-latihan.txt | Berkas latihan ikut tercatat sebagai berkas baru |
create mode 100644 docs/agenda.txt | Baris create mode hanya muncul untuk berkas yang belum pernah ada di riwayat |
create mode 100644 docs/faq.md | Suntingan dan penghapusan tidak memunculkan baris ini — hanya berkas baru |
create mode 100644 docs/panduan-instalasi.md | README.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:
git statusOutput yang Dihasilkan:
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:
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:
[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:
git log -1Output yang Dihasilkan:
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:
git commit --allow-empty -m "Tandai mulai perapian dokumentasi"Output yang Dihasilkan:
[main 98ebe8e] Tandai mulai perapian dokumentasiPerhatikan 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:
printf '%s\n' '- 2026-10-13: perbaiki tautan panduan instalasi' >> CATATAN-RILIS.md
git status -sOutput yang Dihasilkan:
M CATATAN-RILIS.md
?? draf-catatan.txtSuntingan masih di working tree (kolom Y). Dengan -a, keduanya digabung jadi satu langkah — -am adalah gabungan opsi -a dan -m:
git commit -am "Catat perbaikan tautan panduan"Output yang Dihasilkan:
[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:
git statusOutput yang Dihasilkan:
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:
git log --onelineOutput yang Dihasilkan:
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 dokumentasiEnam 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 .