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:

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

bash
git log --oneline

Output yang Dihasilkan:

text
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 catatan

Menyaring Penulis dengan –author #

Filter --author mencocokkan pola terhadap nama dan surel penulis:

bash
git log --author="Siti" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judul

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

bash
git log --author="Rahma" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judul

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

bash
git log --grep="pencarian" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong
332d578 Tambah pencarian catatan berdasar judul

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

bash
git log -i --grep="tambah" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas
332d578 Tambah pencarian catatan berdasar judul
30ec1b7 Tambah struktur awal aplikasi catatan

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

bash
git log --since="2026-10-01" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong
1bf9138 Tambah ekspor catatan ke berkas
645ac52 Perbaiki urutan tampilan daftar catatan
bash
git log --until="2026-10-01" --oneline

Output yang Dihasilkan:

text
332d578 Tambah pencarian catatan berdasar judul
30ec1b7 Tambah struktur awal aplikasi catatan

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

bash
git log -n 2 --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
90c5f3d Perbaiki pencarian catatan pada judul kosong

Opsi --skip melewati sejumlah commit dari yang terbaru sebelum mulai menampilkan — kombinasi keduanya menjadi halaman:

bash
git log --skip=2 -n 2 --oneline

Output yang Dihasilkan:

text
1bf9138 Tambah ekspor catatan ke berkas
645ac52 Perbaiki urutan tampilan daftar catatan

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

bash
git log --author="Siti" --since="2026-10-01" --oneline

Output yang Dihasilkan:

text
625562d Tambah dokumentasi penggunaan pencarian
1bf9138 Tambah ekspor catatan ke berkas

Dua 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 .