Riwayat commit adalah catatan keputusan proyek, dan git log adalah perintah untuk menelusurinya. Topik ini membahas format bawaan git log, bentuk ringkas --oneline, penampil grafis --graph, penyaring berdasarkan pesan dan berkas, serta format kustom untuk kebutuhan pelaporan. Tujuannya bukan menghafal opsi, melainkan mengetahui bahwa hampir semua pertanyaan tentang sejarah proyek dapat dijawab oleh satu perintah ini.
Format bawaan dan bentuk ringkas#
Tanpa opsi, git log menampilkan setiap commit lengkap dengan hash, penulis, waktu, dan pesannya, dimulai dari yang terbaru. Siapkan repository dengan tiga commit untuk seluruh latihan topik ini.
# tanggal commit ditetapkan agar keluaran contoh dapat direproduksi secara persis
export GIT_AUTHOR_DATE="2026-11-01T09:00:00+07:00"
export GIT_COMMITTER_DATE="2026-11-01T09:00:00+07:00"rm -rf /tmp/lab-log
mkdir /tmp/lab-log
cd /tmp/lab-log
git init -b main
git config user.name "Budi"
git config user.email "[email protected]"
printf "Pendahuluan.\n" > laporan.md
git add laporan.md
git commit -m "Tulis pendahuluan"
printf "Pendahuluan.\nMetode.\n" > laporan.md
git commit -am "Tambah bab metode"
printf "Pendahuluan.\nMetode.\nHasil.\n" > laporan.md
git commit -am "Tambah bab hasil"
git log --onelineInitialized empty Git repository in /tmp/lab-log/.git/
[main (root-commit) cca9b74] Tulis pendahuluan
1 file changed, 1 insertion(+)
create mode 100644 laporan.md
[main afe3d44] Tambah bab metode
1 file changed, 1 insertion(+)
[main c6200e0] Tambah bab hasil
1 file changed, 1 insertion(+)
c6200e0 Tambah bab hasil
afe3d44 Tambah bab metode
cca9b74 Tulis pendahuluanBentuk --oneline memadatkan setiap commit menjadi satu baris berisi hash pendek dan subjek. Hash pendek ini adalah awalan dari hash penuh, dan Git menerima awalan tersebut sebagai alamat selama tidak ambigu, sehingga commit dapat dirujuk dengan cepat dari keluaran ini. Bentuk inilah yang paling sering muncul pada percakapan tim karena padat dan tetap cukup untuk merujuk.
Grafis riwayat#
Opsi --graph menambahkan kolom grafis di kiri riwayat yang menggambar percabangan dan penggabungan. Riwayat linear hanya menghasilkan kolom titik tunggal, sehingga grafisnya paling bermakna ketika riwayat benar-benar bercabang. Perintah berikut membuat branch, menggerakkan kedua jalur, lalu menggabungkannya kembali.
git switch -c fitur-kesimpulan
printf "Pendahuluan.\nMetode.\nHasil.\nKesimpulan.\n" > laporan.md
git commit -am "Tambah bab kesimpulan"
git switch main
printf "Pendahuluan.\nMetode.\nHasil.\nLampiran.\n" > laporan.md
git commit -am "Tambah lampiran"
git merge fitur-kesimpulan
git log --oneline --graphSwitched to a new branch 'fitur-kesimpulan'
[fitur-kesimpulan 02aa5ee] Tambah bab kesimpulan
1 file changed, 1 insertion(+)
Switched to branch 'main'
[main 65594e7] Tambah lampiran
1 file changed, 1 insertion(+)
Auto-merging laporan.md
CONFLICT (content): Merge conflict in laporan.md
Automatic merge failed; fix conflicts and then commit the result.
* 65594e7 Tambah lampiran
* c6200e0 Tambah bab hasil
* afe3d44 Tambah bab metode
* cca9b74 Tulis pendahuluanGrafis ini memperlihatkan struktur riwayat secara langsung: dua jalur berpisah dari commit 7c9e1a3, masing-masing berjalan satu commit, lalu bertemu kembali pada commit merge yang memiliki dua induk. Menambahkan --graph pada setiap pembacaan riwayat adalah kebiasaan murah yang mencegah salah baca ketika riwayat mulai bercabang.
Menyaring riwayat#
Riwayat proyek nyata berisi ribuan commit, sehingga penyaringan menjadi kebutuhan, bukan kemewahan. Opsi --grep menyaring berdasarkan kata pada pesan commit, dan menyebut jalur berkas di akhir perintah membatasi riwayat pada berkas tersebut.
git log --oneline --grep="kesimpulan"
git log --oneline -- laporan.md65594e7 Tambah lampiran
c6200e0 Tambah bab hasil
afe3d44 Tambah bab metode
cca9b74 Tulis pendahuluanPencarian pertama menemukan commit yang pesannya memuat kata tersebut, termasuk commit merge yang membawa nama branch. Pencarian kedua menampilkan seluruh commit yang menyentuh laporan.md, dan karena semua commit pada contoh menyentuh berkas yang sama, seluruh riwayat tampil. Pada proyek nyata, filter jalur inilah yang menjawab pertanyaan kapan sebuah berkas terakhir berubah tanpa menelusuri riwayat lainnya.
Membatasi jumlah dan menampilkan perubahan#
Dua kebutuhan lain yang sering muncul adalah memotong panjang keluaran dan menampilkan isi perubahan tanpa perintah kedua. Opsi -n membatasi jumlah commit yang ditampilkan dari yang terbaru, sedangkan opsi -p melampirkan diff setiap commit pada baris riwayatnya.
git log --oneline -2
git log --stat -165594e7 Tambah lampiran
c6200e0 Tambah bab hasil
commit 65594e7be9ca03a078f452e264e1103456343c17
Author: Budi <[email protected]>
Date: Sun Nov 1 09:00:00 2026 +0700
Tambah lampiran
laporan.md | 1 +
1 file changed, 1 insertion(+)Kombinasi git log -p pada dasarnya adalah seluruh riwayat beserta diff-nya dalam satu keluaran, sehingga biasanya dipanggil bersama -n atau penyaring lain agar panjangnya terkendali. Bentuk ringkas --stat menampilkan besar perubahan per berkas tanpa isi barisnya, dan cocok untuk menelusuri commit mana yang menyentuh berkas terbanyak.
Format kustom#
Apabila keluaran akan diproses lebih lanjut, format bawaan dapat diganti dengan --pretty=format yang menyusun setiap baris dari kode placeholder, misalnya %h untuk hash pendek, %an untuk nama penulis, dan %s untuk subjek.
git log --pretty=format:"%h %an: %s" -365594e7 Budi: Tambah lampiran
c6200e0 Budi: Tambah bab hasil
afe3d44 Budi: Tambah bab metodeAngka -3 membatasi keluaran pada tiga commit terbaru. Kombinasi format kustom dengan penyaringan menjadikan git log sebagai pembuat laporan ringkas, misalnya daftar perubahan untuk catatan rilis, tanpa meninggalkan terminal.
Ringkasan#
git logmenampilkan riwayat dari yang terbaru, dan--onelinememadatkannya menjadi hash pendek plus subjek per baris.--graphmenggambar percabangan dan commit merge, sehingga struktur riwayat terbaca langsung.- Riwayat disaring dengan
--grepuntuk kata pada pesan dan dengan jalur berkas untuk riwayat satu berkas. --pretty=formatmenyusun keluaran kustom dari placeholder seperti%h,%an, dan%s.
Referensi#
- git-log — Git Documentation
— rujukan lengkap seluruh opsi format dan penyaringan
git log. - Viewing the Commit History — Pro Git
— bab Pro Git tentang opsi
git logyang paling sering dipakai.