git log: Menjelajah Riwayat Commit
Membaca riwayat dengan git log, format one-line, filter penulis dan tanggal, sampai grafik branch.
Melihat riwayat standar
git log adalah mesin waktu Git: ia menampilkan daftar commit dari yang terbaru ke yang terlama, lengkap dengan hash, penulis, tanggal, dan pesan. Kalau commit adalah titik save, git log adalah daftar semua titik save yang pernah kamu buat.
Kenapa perintah ini ada? Karena ingatan manusia pendek, riwayat Git panjang. Kamu tidak akan ingat apa yang diubah tiga minggu lalu, tapi Git ingat. git log adalah cara meminta Git menceritakan kembali semuanya.
git logcommit 7b2e4aa1f3c9d8e7b6a5f4e3d2c1b0a9f8e7d6c5 (HEAD -> main)
Author: Namamu <[email protected]>
Date: Thu Oct 8 10:00:00 2026 +0700
Tambah baris kedua
commit a3f9c1d2e4b6a8f0c1d3e5f7a9b1d3f5a7b9c1d3e
Author: Namamu <[email protected]>
Date: Thu Oct 8 09:30:00 2026 +0700
Commit pertama: tambah halo.txtUntuk repo aktif, outputnya panjang dan membuka pager (less): tekan q untuk keluar, panah atas/bawah untuk scroll, / lalu kata kunci untuk mencari. Jangan panik kalau terminal "macet", itu cuma pager.
Contoh nyata 1: format oneline yang dipakai sehari-hari
Format standar terlalu berisik untuk pemakaian harian. Hafalkan varian ini:
git log --onelinea3f9c1d Tambah halaman kontak
7b2e4aa Perbaiki validasi email
c1d08f3 Commit pertamaSatu commit, satu baris: 7 karakter hash + pesan. Ini tampilan yang dipakai 90% waktu. Butuh grafik percabangan branch? Tambahkan --graph --all:
git log --oneline --graph --all* 9d4e2b7 (HEAD -> main) Gabung fitur login
| * 3f8a1c2 (fitur-login) Tambah form login
| * 1b2c3d4 Validasi input login
|/
* a3f9c1d Tambah halaman kontakGaris dan bintang itu menunjukkan branch fitur-login bercabang dari main lalu digabung kembali. Wajib dipakai saat bekerja dengan banyak branch, kalau tidak kamu akan tersesat.
Contoh nyata 2: filter, cara mencari commit tertentu
Repo besar bisa punya ribuan commit. Filter inilah yang membuat git log tetap berguna:
git log --oneline -59d4e2b7 Gabung fitur login
3f8a1c2 Tambah form login
1b2c3d4 Validasi input login
a3f9c1d Tambah halaman kontak
7b2e4aa Perbaiki validasi emailLima commit terakhir saja. Filter lain yang sering dipakai:
git log --oneline --author="Rina" # hanya commit dari Rina
git log --oneline --since="2 weeks ago" # hanya 2 minggu terakhir
git log --oneline --grep="login" # pesan mengandung kata "login"
git log --oneline -- index.html # commit yang menyentuh file index.htmlKombinasi filter menghemat waktu luar biasa. Skenario klasik: "fitur pembayaran kemarin masih jalan, sekarang error". Jalankan git log --oneline --since="yesterday" -- app/pembayaran.js, dan kamu langsung dapat daftar tersangka.
Mau tahu file apa saja yang disentuh tiap commit? Pakai --stat:
git log --oneline --stat -29d4e2b7 Gabung fitur login
login.html | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
3f8a1c2 Tambah form login
app.js | 15 +++++++++++++++
1 file changed, 15 insertions(+)Cocok untuk audit cepat "commit ini menyentuh apa saja?" sebelum me-review.
Catatan teknis: hash commit (mis.
a3f9c1d) adalah SHA-1 dari isi commit: pesan, penulis, tanggal, snapshot file, dan hash commit induknya. Karena hash mencakup induknya, mengubah satu commit lama akan mengubah semua hash setelahnya, itulah kenapa riwayat Git sulit dipalsukan. Git hanya butuh beberapa karakter awal yang unik untuk mengidentifikasinya, jadigit show a3f9c1dsudah cukup tanpa menulis 40 karakter penuh.
Kapan memakai git log?
Setiap kali butuh konteks: sebelum code review ("apa saja yang diubah PR ini?"), saat debugging ("commit mana yang merusak fitur ini?"), atau sekadar nostalgia melihat progres belajarmu dari commit pertama yang malu-maluin. Aturan praktisnya: kalau kamu bertanya "kapan" atau "siapa" tentang kode, jawabannya ada di git log.
Kesalahan umum pemula
Salah: Menjalankan git log di repo besar, terminal "macet" di pager, lalu menutup terminal paksa.
Benar: Itu pager less, bukan macet. Tekan q untuk keluar. Untuk menghindari pager, batasi output: git log --oneline -10.
Salah: Menyalin 40 karakter hash lengkap dari output untuk dipakai di perintah lain.
Benar: Cukup 7 karakter awal yang unik, misalnya git show a3f9c1d. Lebih cepat diketik, lebih gampang dibaca.
Salah: git log tanpa filter di repo dengan ribuan commit, lalu scroll manual mencari satu commit.
Benar: Pakai filter: --author, --since, --grep, atau batasi file. Mencari commit tanpa filter seperti mencari satu chat di grup WA tanpa fitur search.
Salah: Mengira git log hanya menampilkan branch yang sedang aktif, lalu heran "kok commit temanku tidak ada?".
Benar: Tambahkan --all untuk melihat commit dari semua branch. Tanpa itu, Git hanya menampilkan riwayat branch-mu saat ini.
Tantangan
Berburu commit
Di repo latihanmu (minimal 3 commit), jalankan: (1) git log --oneline -2, (2) git log --oneline --author="<namamu>", (3) git log --stat -1. Tulis apa yang ditampilkan masing-masing dan jelaskan bedanya dengan kata-katamu sendiri.