Riwayat repository latihan kini berisi enam commit hasil kerja dua chapter sebelumnya, dan git log adalah jendela untuk menjelajahinya. Perintah ini punya banyak wajah: format panjang bawaan yang lengkap, --oneline yang ringkas, statistik perubahan, format kustom untuk kebutuhan skrip, hingga grafik riwayat bercabang. Chapter ini mencoba semuanya pada repository yang sama, lalu menyiapkan repository kecil bercabang supaya opsi --graph juga terlihat nyata.

Riwayat dalam Format Bawaan #

Tanpa opsi apa pun, git log menampilkan seluruh riwayat mulai dari commit terbaru:

bash
git log

Output yang Dihasilkan:

text
commit 44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:10:00 2026 +0700

    Catat perbaikan tautan panduan

commit 98ebe8ee89d53d0fb98a8c0686c70b6314399084
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:00:00 2026 +0700

    Tandai mulai perapian dokumentasi

commit b1b2ec81662656f5e226cd2948b4f094a17e8f70
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:50:00 2026 +0700

    Tambah tanya jawab kontribusi
    
    Bagian FAQ kini menjelaskan cara mulai berkontribusi dokumen.

commit ea43d5648ca958010fbdf7ebb46584599281d7ff
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:40:00 2026 +0700

    Tambah panduan dan catatan rilis

commit 462b791829f26390eb7773946830b6fe6e64efa4
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:20:00 2026 +0700

    Tambah glosarium istilah

commit 642e91fda53453c1f4ab8078233f8a07f4909ba6
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:00:00 2026 +0700

    Tambah README dokumentasi

Setiap entri memuat empat hal: hash lengkap 40 karakter, baris Author dengan nama dan email, baris Date dengan waktu pembuatan, serta pesan commit yang menjorok empat spasi. Pesan multi-paragraf tampil utuh — terlihat pada commit b1b2ec8 yang judul dan isinya dipisah baris kosong.

Ringkas dengan –oneline dan Terbatas dengan -n #

Enam entri masih terbaca; seratus entri tidak. Opsi --oneline memampatkan setiap commit menjadi satu baris — hash pendek plus judul pesan:

bash
git log --oneline

Output yang Dihasilkan:

text
44ce6c1 Catat perbaikan tautan panduan
98ebe8e Tandai mulai perapian dokumentasi
b1b2ec8 Tambah tanya jawab kontribusi
ea43d56 Tambah panduan dan catatan rilis
462b791 Tambah glosarium istilah
642e91f Tambah README dokumentasi

Jumlah entri dibatasi dengan -n <jumlah>:

bash
git log -n 2

Output yang Dihasilkan:

text
commit 44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:10:00 2026 +0700

    Catat perbaikan tautan panduan

commit 98ebe8ee89d53d0fb98a8c0686c70b6314399084
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:00:00 2026 +0700

    Tandai mulai perapian dokumentasi

Bentuk singkatnya -2 berarti sama dengan -n 2. Opsi ini saling bebas dikombinasikan — -n membatasi jumlah, format lain mengatur tampilan.

Statistik Perubahan dengan –stat #

Opsi --stat menyisipkan ringkasan berkas yang berubah pada setiap commit:

bash
git log --stat -n 3

Output yang Dihasilkan:

text
commit 44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:10:00 2026 +0700

    Catat perbaikan tautan panduan

 CATATAN-RILIS.md | 1 +
 1 file changed, 1 insertion(+)

commit 98ebe8ee89d53d0fb98a8c0686c70b6314399084
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 10:00:00 2026 +0700

    Tandai mulai perapian dokumentasi

commit b1b2ec81662656f5e226cd2948b4f094a17e8f70
Author: Budi Santoso <[email protected]>
Date:   Tue Oct 13 09:50:00 2026 +0700

    Tambah tanya jawab kontribusi
    
    Bagian FAQ kini menjelaskan cara mulai berkontribusi dokumen.

 docs/faq.md | 3 +++
 1 file changed, 3 insertions(+)

Baris CATATAN-RILIS.md | 1 + berarti satu berkas berubah dengan satu penambahan; angka pada kolom kanan mengikuti tanda plus-minus yang sama dengan git diff. Satu hal menarik terlihat pada commit 98ebe8e: entri tanpa baris statistik sama sekali — itulah commit kosong dari opsi --allow-empty di chapter git commit .

Memilih Format dan Menyusun Format Sendiri #

Opsi --format mengganti keseluruhan tampilan. Format oneline mirip --oneline tetapi memakai hash lengkap:

bash
git log --format=oneline

Output yang Dihasilkan:

text
44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f Catat perbaikan tautan panduan
98ebe8ee89d53d0fb98a8c0686c70b6314399084 Tandai mulai perapian dokumentasi
b1b2ec81662656f5e226cd2948b4f094a17e8f70 Tambah tanya jawab kontribusi
ea43d5648ca958010fbdf7ebb46584599281d7ff Tambah panduan dan catatan rilis
462b791829f26390eb7773946830b6fe6e64efa4 Tambah glosarium istilah
642e91fda53453c1f4ab8078233f8a07f4909ba6 Tambah README dokumentasi

Format short memotong baris tanggal dari format bawaan:

bash
git log --format=short -n 2

Output yang Dihasilkan:

text
commit 44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f
Author: Budi Santoso <[email protected]>

    Catat perbaikan tautan panduan

commit 98ebe8ee89d53d0fb98a8c0686c70b6314399084
Author: Budi Santoso <[email protected]>

    Tandai mulai perapian dokumentasi

Format full menambah baris Commit — identitas pihak yang terakhir menulis commit ke riwayat:

bash
git log --format=full -n 2

Output yang Dihasilkan:

text
commit 44ce6c19baec80deb9c0e0a5bb4b8f1121591b3f
Author: Budi Santoso <[email protected]>
Commit: Budi Santoso <[email protected]>

    Catat perbaikan tautan panduan

commit 98ebe8ee89d53d0fb98a8c0686c70b6314399084
Author: Budi Santoso <[email protected]>
Commit: Budi Santoso <[email protected]>

    Tandai mulai perapian dokumentasi

Pada commit biasa author dan committer orang yang sama; keduanya berbeda ketika commit dipindahkan lewat git cherry-pick atau git rebase — perbedaan ini dibahas pada chapter Anatomi Commit . Format medium adalah nama format bawaan yang kita lihat sejak awal chapter.

Format kustom disusun dari placeholder yang diawali persen:

bash
git log --format='%h %an %s'

Output yang Dihasilkan:

text
44ce6c1 Budi Santoso Catat perbaikan tautan panduan
98ebe8e Budi Santoso Tandai mulai perapian dokumentasi
b1b2ec8 Budi Santoso Tambah tanya jawab kontribusi
ea43d56 Budi Santoso Tambah panduan dan catatan rilis
462b791 Budi Santoso Tambah glosarium istilah
642e91f Budi Santoso Tambah README dokumentasi

Placeholder yang paling sering dipakai:

PlaceholderArti
%hhash pendek
%Hhash lengkap
%annama author
%adtanggal author
%ssubjek — baris pertama pesan commit

Kombinasi %h %s misalnya pas untuk laporan singkat, sedangkan %h %ad %s menambah waktu pembuatan. Daftar placeholder lengkap ada di chapter Format Log .

Riwayat Bercabang dan –graph #

Semua tampilan di atas menggambarkan riwayat lurus. Riwayat sesungguhnya bisa bercabang ketika dua jalur kerja berjalan lalu menyatu lewat merge — dan opsi --graph menggambarnya. Kita siapkan repository kecil kedua untuk itu; branch dibahas tuntas di section Branch dan Merging , jadi di sini cukup dua keterangan singkat: git switch -c <nama> membuat branch baru sekaligus berpindah ke sana, dan git merge <branch> menyatukan branch itu kembali:

bash
mkdir latihan-cabang
cd latihan-cabang
git init -b main
git config user.name "Budi Santoso"
git config user.email "[email protected]"
printf '# Proyek Latihan Cabang\n' > README.md
git add README.md
git commit -m "Tambah README proyek"
printf 'Rencana fitur:\n- mode gelap\n- ekspor PDF\n' > fitur.md
git add fitur.md
git commit -m "Tambah daftar fitur"
git switch -c fitur-berita
printf 'Kerangka berita:\n- judul\n- ringkasan\n' > berita.md
git add berita.md
git commit -m "Tambah kerangka berita"
git switch main
printf '# Proyek Latihan Cabang\n\nRiwayat untuk latihan grafik commit.\n' > README.md
git add README.md
git commit -m "Perbarui deskripsi proyek"
git merge fitur-berita

Output yang Dihasilkan:

text
Merge made by the 'ort' strategy.
 berita.md | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 berita.md

Riwayatnya kini bercabang: dua commit awal, branch fitur-berita menambah satu commit, main menambah satu commit lain, lalu merge menyatukan keduanya. Grafiknya:

bash
git log --graph --oneline

Output yang Dihasilkan:

text
*   44ec785 Merge branch 'fitur-berita'
|\  
| * a74214f Tambah kerangka berita
* | c96c6a0 Perbarui deskripsi proyek
|/  
* d9743c6 Tambah daftar fitur
* bca0287 Tambah README proyek

Cara membacanya: setiap * adalah satu commit, dan garis | menghubungkan induk dengan anaknya. Baris kedua |\ memperlihatkan commit merge 44ec785 bercabang menjadi dua garis — kolom kiri adalah jalur main, kolom kanan jalur fitur-berita. Commit a74214f berada di kolom kanan, sedangkan c96c6a0 di kolom kiri dengan garis * |; baris |/ menandai kedua jalur menyatu kembali ke d9743c6, induk bersama mereka. Mekanisme merge ini dibahas tuntas pada chapter git merge .

Masih banyak opsi penyaring riwayat — pencarian pesan, rentang tanggal, penulis tertentu, hingga git log lintas branch — yang terdokumentasi pada dokumentasi git log dan dibahas di section Commit dan Riwayat .

Daftar judul dan grafik memberitahu kapan dan siapa — tetapi untuk melihat apa persisnya yang berubah di antara dua titik riwayat, kita butuh chapter berikutnya: git diff .