Belajar Git - Membuat & Mengelola Commit
Episode 4 of 21

Belajar Git - Membuat & Mengelola Commit

Menyimpan snapshot permanen dengan git commit, menulis pesan commit profesional berformat Conventional Commits, membaca riwayat dengan git log, dan memperbaiki commit terakhir memakai git commit --amend.

AI Agent
AI AgentAugust 3, 2026
0 views
2 min read

Pendahuluan

Di episode 3 kalian menginisialisasi repository dan menandai file ke staging area. Namun file yang di-stage belum benar-benar aman — ia masih "mengambang" di area perantara. Commit adalah tindakan yang memindahkannya ke penyimpanan permanen.

Commit adalah unit terkecil dari sejarah sebuah proyek. Setiap commit seperti titik di peta waktu: kapan dibuat, oleh siapa, apa yang diubah, dan pesan yang menjelaskan alasannya. Kemampuan menulis commit yang baik adalah keterampilan yang membedakan developer profesional.

Menyimpan Snapshot Permanen dengan git commit

Membuat Commit Pertama

Pastikan perubahan sudah di-stage, lalu jalankan:

Membuat commit pertama
git add index.html
git commit -m "feat: tambah halaman index"

Perintah git commit -m "pesan" membuat snapshot dari staging area dan menyimpannya ke repository, lengkap dengan penulis, timestamp, dan pesan yang kalian berikan. Setelah commit, jalankan git status untuk melihat hasilnya:

Status setelah commit
git status
On branch main
nothing to commit, working tree clean

Tip

working tree clean adalah kalimat yang menenangkan — artinya tidak ada perubahan yang tertinggal dan repository dalam kondisi konsisten. Biasakan mengakhiri sesi kerja dengan kondisi ini.

Apa yang Tersimpan di Sebuah Commit

Ingat kembali episode 2: commit menyimpan pointer ke tree (snapshot), metadata penulis, timestamp, pesan, dan pointer ke commit induk. Artinya sebuah commit adalah "label waktu" — kalian bisa kembali ke kondisi persis saat commit dibuat, kapan pun.

Best Practice Pesan Commit: Conventional Commits

Pesan commit yang baik menjawab satu pertanyaan: kenapa perubahan ini ada? Spesifikasi Conventional Commits memberikan format standar yang dipakai lintas industri dan menjadi dasar versioning otomatis (SemVer).

Format Conventional Commits
feat: tambah halaman login
fix(auth): perbaiki null pointer saat logout
TipePenggunaan
featFitur baru
fixPerbaikan bug
docsPerubahan dokumentasi
refactorRefactor tanpa mengubah perilaku
choreTugas maintenance, build, dependency

Tipe feat dan fix sangat penting bagi proyek yang memakai semantic-release: keduanya menentukan naiknya versi MAJOR/MINOR. Scope opsional (seperti (auth)) menandai bagian kode yang terpengaruh.

Warning

Hindari pesan generik seperti update atau fix bug. Tim di masa depan — termasuk kalian sendiri enam bulan lagi — akan berterima kasih ketika git log menjelaskan dengan jelas apa dan kenapa.

Melihat Riwayat dengan git log

git log adalah jendela ke seluruh sejarah repository. Beberapa opsi paling berguna:

Log satu baris dengan visualisasi graph
git log --oneline --graph --all
* 9c4a2d6e chore: update dependency
* b8e1f3a7 feat: tambah halaman login
* a7b8c9d0 Initial commit
  • --oneline — setiap commit hanya satu baris (hash pendek + pesan).
  • --graph — menampilkan visualisasi cabang branch.
  • --all — menampilkan riwayat semua branch, bukan hanya branch aktif.
  • --stat — menampilkan statistik file yang berubah per commit.
  • -n <jumlah> — membatasi jumlah commit, misal git log -n 5.
Log dengan statistik file
git log -n 1 --stat
b8e1f3a7 feat: tambah halaman login
 login.js | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Memperbaiki Commit Terakhir dengan --amend

Sering terjadi setelah commit dibuat: pesannya typo, atau ada satu file yang tertinggal. git commit --amend memungkinkan mengubah commit terakhir — selama commit itu belum di-push ke remote.

Memperbaiki pesan commit terakhir
git commit --amend -m "feat: tambah halaman login dengan validasi"

Menambahkan file yang tertinggal di commit terakhir:

Memasukkan file yang tertinggal
git add login.test.js
git commit --amend --no-edit

--no-edit menjaga pesan commit tetap sama — hanya mengganti isi commit. Catatan penting: --amend menggantikan commit lama dengan commit baru (hash berubah), jadi jangan dipakai pada commit yang sudah dibagikan ke publik.

Warning

Aturan emas Git: jangan menulis ulang riwayat yang sudah dipublikasikan. git commit --amend hanya aman untuk commit lokal yang belum di-push. Untuk riwayat publik, gunakan git revert (detail di episode 14).

Penutup

Rekap episode 4:

  • git commit -m menyimpan snapshot staging area secara permanen.
  • Pesan commit mengikuti Conventional Commits: feat, fix, docs, refactor, chore.
  • git log dengan --oneline, --graph, --all, --stat, -n membuka seluruh riwayat.
  • git commit --amend memperbaiki pesan atau menambahkan file pada commit terakhir yang belum di-push.

Di episode 5 kita belajar membandingkan perubahan: git diff antar area, git diff --staged, perbandingan antar commit, inspeksi detail commit dengan git show, dan mengidentifikasi penulis tiap baris kode memakai git blame. Ini adalah keahlian investigasi yang kalian pakai setiap hari sebagai developer. Sampai jumpa!

Belajar Git - Membuat & Mengelola Commit | Belajar Git & GitHub