gitlogriwayatPemula4 mnt baca

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.

bash
git log
bash
commit 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.txt

Untuk 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:

bash
git log --oneline
bash
a3f9c1d Tambah halaman kontak
7b2e4aa Perbaiki validasi email
c1d08f3 Commit pertama

Satu commit, satu baris: 7 karakter hash + pesan. Ini tampilan yang dipakai 90% waktu. Butuh grafik percabangan branch? Tambahkan --graph --all:

bash
git log --oneline --graph --all
bash
* 9d4e2b7 (HEAD -> main) Gabung fitur login
| * 3f8a1c2 (fitur-login) Tambah form login
| * 1b2c3d4 Validasi input login
|/
* a3f9c1d Tambah halaman kontak

Garis 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:

bash
git log --oneline -5
bash
9d4e2b7 Gabung fitur login
3f8a1c2 Tambah form login
1b2c3d4 Validasi input login
a3f9c1d Tambah halaman kontak
7b2e4aa Perbaiki validasi email

Lima commit terakhir saja. Filter lain yang sering dipakai:

bash
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.html

Kombinasi 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:

bash
git log --oneline --stat -2
bash
9d4e2b7 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, jadi git show a3f9c1d sudah 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.