Setelah beberapa pekan bekerja, git log di repository tim bukan lagi daftar pendek yang menyenangkan digulir — melainkan ratusan entri dari banyak orang. Pertanyaan yang muncul pun menjadi spesifik: kontribusi apa saja yang Siti buat bulan ini, kapan perbaikan pencarian terakhir masuk, siapa saja yang menyentuh modul tertentu. Menggulir riwayat satu per satu menjawab pertanyaan itu dengan lambat dan rawan kelewat. git log menyimpan seperangkat filter — penulis, isi pesan, rentang waktu, jumlah, bahkan offset — yang menjadikan pertanyaan-pertanyaan tersebut satu perintah singkat. Chapter ini menguji semuanya pada repository kecil berdua penulis.
Repository Latihan: Dua Penulis, Enam Commit #
Repository latihan merekam aplikasi catatan selama dua pekan, dengan dua penulis bergantian. Siti tidak mengubah konfigurasi lokal Budi; identitasnya disisipkan per-commit lewat opsi -c milik git itu sendiri:
mkdir latihan-log && cd latihan-log
git init -b main
git config user.name "Budi Santoso"
git config user.email "[email protected]"
printf '# Aplikasi Catatan\n\nKelola catatan rapat tim.\n' > README.md
printf 'Catatan 1: perkenalan proyek\nCatatan 2: pembagian tugas\n' > catatan.txt
git add README.md catatan.txt
git commit -m "Tambah struktur awal aplikasi catatan"
printf 'Pencarian berdasar judul:\n- cocokkan sebagian judul\n- abaikan huruf besar\n' > pencarian.txt
git add pencarian.txt
git -c user.name="Siti Rahma" -c user.email="[email protected]" \
commit -m "Tambah pencarian catatan berdasar judul"
printf 'Catatan 1: perkenalan proyek\nCatatan 2: pembagian tugas\nCatatan 3: jadwal mingguan\n' > catatan.txt
git add catatan.txt
git commit -m "Perbaiki urutan tampilan daftar catatan"
printf 'Ekspor catatan:\n- seluruh catatan ke berkas teks\n' > ekspor.txt
git add ekspor.txt
git -c user.name="Siti Rahma" -c user.email="[email protected]" \
commit -m "Tambah ekspor catatan ke berkas"
printf 'Pencarian berdasar judul:\n- cocokkan sebagian judul\n- abaikan huruf besar\n- tangani judul kosong\n' > pencarian.txt
git add pencarian.txt
git commit -m "Perbaiki pencarian catatan pada judul kosong"
mkdir docs
printf 'Panduan penggunaan pencarian:\n1. ketik kata kunci\n2. tekan enter\n' > docs/panduan.txt
git add docs/panduan.txt
git -c user.name="Siti Rahma" -c user.email="[email protected]" \
commit -m "Tambah dokumentasi penggunaan pencarian"Pola git -c user.name=... -c user.email=... commit menimpa identitas hanya untuk commit itu satu — trik yang juga dipakai alat otomasi saat mencatat commit atas nama penggunanya. Riwayat lengkapnya:
git log --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong
1bf9138 Tambah ekspor catatan ke berkas
645ac52 Perbaiki urutan tampilan daftar catatan
332d578 Tambah pencarian catatan berdasar judul
30ec1b7 Tambah struktur awal aplikasi catatanMenyaring Penulis dengan –author #
Filter --author mencocokkan pola terhadap nama dan surel penulis:
git log --author="Siti" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judulTiga commit Siti tampil; tiga sisanya hilang dari hasil. Nilainya bukan pencocokan persis melainkan pola regex — nama lengkap Siti adalah Siti Rahma, dan potongan nama belakangnya pun cukup:
git log --author="Rahma" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judulHasilnya sama tiga commit. Pola regex membuka kemampuan seperti --author="^Budi" (nama diawali Budi) atau pencocokan surel --author="@example.com" untuk mengabaikan domain tertentu.
Menyaring Pesan dengan –grep #
Filter --grep mencari pola di dalam pesan commit:
git log --grep="pencarian" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong
332d578 Tambah pencarian catatan berdasar judulTiga commit yang membahas pencarian terkumpul — subjek dari chapter Conventional Commits
memang dirancang untuk bisa disaring begini. Pencarian ini peka huruf besar-kecil: pola tambah dengan huruf kecil menghasilkan keluaran kosong karena subjek repository memakai Tambah. Menambahkan -i menonaktifkan kepekaan itu:
git log -i --grep="tambah" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judul
30ec1b7 Tambah struktur awal aplikasi catatanEmpat commit bersubjek Tambah kini tampil semua. Opsi -i menonaktifkan kepekaan huruf untuk seluruh filter pola — ia juga membuat --author="siti" dengan huruf kecil cocok dengan Siti Rahma.
Menyaring Waktu dengan –since dan –until #
Filter tanggal membatasi rentang waktu pencatatan. --since menampilkan commit sejak sebuah titik waktu, --until membatasi sampai sebuah titik waktu:
git log --since="2026-10-01" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong
1bf9138 Tambah ekspor catatan ke berkas
645ac52 Perbaiki urutan tampilan daftar catatangit log --until="2026-10-01" --onelineOutput yang Dihasilkan:
332d578 Tambah pencarian catatan berdasar judul
30ec1b7 Tambah struktur awal aplikasi catatanPembagian batasnya bersih: empat commit sejak Oktober, dua commit sebelumnya dari akhir September. Keduanya bisa digabung — --since="2026-10-01" --until="2026-10-12" misalnya — untuk mengisolasi satu pekan kerja.
Membatasi Jumlah dengan -n dan –skip #
Dua filter terakhir mengatur jendela tampilan. -n membatasi jumlah commit terbaru yang ditampilkan — bentuk singkatnya -2:
git log -n 2 --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosongOpsi --skip melewati sejumlah commit dari yang terbaru sebelum mulai menampilkan — kombinasi keduanya menjadi halaman:
git log --skip=2 -n 2 --onelineOutput yang Dihasilkan:
1bf9138 Tambah ekspor catatan ke berkas
645ac52 Perbaiki urutan tampilan daftar catatanDua entri terbaru dilewati, dua entri berikutnya tampil: jendela kedua dari riwayat. Menaikkan --skip sebesar -n di setiap langkah membedah riwayat demi sebagian layar — pola yang lazim dibungkus alias seperti git config alias.halaman2 "log --skip=2 -n 2 --oneline", sebagaimana dibahas di chapter Konfigurasi Alias
.
Filter yang Digabung #
Semua filter bekerja dengan logika dan: hasil akhir harus lolos semua syarat sekaligus. Pertanyaan pembuka chapter ini — “kontribusi Siti bulan Oktober” — kini menjadi satu perintah:
git log --author="Siti" --since="2026-10-01" --onelineOutput yang Dihasilkan:
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkasDua commit Siti sejak Oktober tampil — 332d578 tanggal 30 September tersaring keluar. Filter tanggal memakai waktu committer secara bawaan; --author memakai penulis asli — perbedaan yang hanya terasa ketika keduanya berbeda akibat --author, amend, atau rebase, sebagaimana dibedah di chapter Amend Commit
.
Daftar lengkap filter dan variasinya terdokumentasi di dokumentasi git log
— termasuk --committer, -S untuk melacak perubahan teks tertentu di dalam diff, dan -- path untuk membatasi berkas. Filter menjawab commit mana yang relevan; pertanyaan berikutnya adalah menampilkan hasilnya dalam bentuk yang pas untuk dibaca — dan itu pokok bahasan chapter Format Log
.