Membaca Riwayat: log, diff, show dan Navigasi ke Masa Lalu
Riwayat proyek bukan sekadar log, melainkan dokumentasi keputusan. Mari belajar membaca riwayat secara informatif: memfilter commit, melihat perubahan antar versi, dan memahami hash SHA-1 tanpa rasa takut. Khususnya, kita akan bahas cara membedakan riwayat yang 'baik' dari yang 'buruk' — hal ini langsung memengaruhi cara Anda dipandang dalam tim.
- Anda akan mampu membaca riwayat repositori dan dengan cepat menemukan commit yang diinginkan berdasarkan penulis, tanggal, atau kata kunci.
- Anda akan memahami cara membandingkan versi file di berbagai level: direktori kerja, indeks, dan commit.
- Anda akan belajar menulis pesan commit yang sesuai dengan standar industri yang diakui (Conventional Commits).
Phần đầu bài giảng
Riwayat komit sebagai buku harian proyek
- git log menampilkan riwayat seperti buku harian yang dibalik
- Setiap entri adalah cuplikan perubahan
- Menyimpan siapa, kapan, dan apa yang diubah
- Membantu melihat evolusi kode
Bayangkan setiap kali Anda menyimpan perubahan di Git, Anda menulis satu catatan di buku harian pengembangan. Perintah git log menampilkan catatan-catatan itu dalam urutan terbalik—dari yang terbaru ke yang lama. Di dalam buku harian ini tersimpan kronologi lengkap proyek: siapa yang mengubah, kapan diubah, dan perubahan apa yang dilakukan. Ini bukan sekadar daftar perubahan, melainkan rekaman hidup dari evolusi kode Anda. Kemampuan membaca dan menganalisis riwayat ini adalah keterampilan penting saat bekerja dalam tim. Melalui riwayat komit, Anda bisa melihat bagaimana proyek berkembang, keputusan apa yang diambil, dan alasannya. Mari kita bahas lebih detail struktur satu komit.
Membaca catatan komit: hash, penulis, tanggal
- commit: pengenal hash unik
- Author: siapa dan kapan membuat perubahan
- Date: stempel waktu komit
- Pesan: apa yang diubah
Perhatikan keluaran perintah git log. Setiap entri dimulai dengan deretan karakter panjang—ini adalah hash komit, yaitu pengenal uniknya. Di bagian berikutnya terdapat penulis perubahan dan tanggal perubahan dibuat. Di bawahnya ada pesan komit yang ditulis pengembang saat menyimpan perubahan. Perhatikan formatnya: alamat email penulis berada di dalam tanda kurung sudut, lalu diikuti stempel waktu. Data ini membantu memahami konteks perubahan dan, jika perlu, menghubungi penulis untuk klarifikasi. Setelah memahami struktur komit, mari kita pahami apa itu hash dan mengapa hash diperlukan.
#!/bin/bash
cd ~/projects/git-course/
git log -1 --pretty=format:'Komit %H\nPenulis: %an <%ae>%nTanggal: %ad\n\n %s'
Hash komit — kunci Anda menuju riwayat
- Hash adalah sidik jari digital komit
- Bergantung pada isi dan metadata
- Mengubah satu karakter saja akan mengubah hash
- Memungkinkan rujukan tepat ke versi mana pun
Hash komit bukan deretan karakter acak. Hash adalah hasil fungsi kriptografis yang mengubah isi komit menjadi string unik. Jika satu byte saja dalam komit berubah, hash akan berubah total. Inilah yang membantu menjaga integritas riwayat perubahan. Dengan mengetahui hash, Anda dapat membuka versi kode tertentu seperti membuka penanda halaman di buku. Misalnya, perintah git checkout dengan menyertakan hash akan membawa Anda ke keadaan proyek pada saat komit itu dibuat. Ini sangat berguna ketika perlu mengembalikan ke versi sebelumnya atau menganalisis kapan sebuah bug muncul. Sekarang setelah memahami struktur riwayat, mari belajar menyaring riwayat—karena dalam proyek nyata, jumlah komit bisa mencapai ribuan.
Bài giảng đầy đủ dành cho thuê bao
Còn 26 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- Riwayat komit sebagai buku harian proyek
- Membaca catatan komit: hash, penulis, tanggal
- Hash komit — kunci Anda menuju riwayat
- Menemukan komit berdasarkan penulis
- Menyaring berdasarkan tanggal komit
- Mencari berdasarkan teks pesan komit
- Menggabungkan filter
- Masalah saat membaca riwayat commit
- Tampilan Ringkas dengan --oneline
- Visualisasi Percabangan dengan --graph
- Gambaran Lengkap dengan --all
- Apa Itu git diff dan Mengapa Penting
- Membandingkan Perubahan di Direktori Kerja
- Apa yang Sudah Siap untuk Commit: git diff --staged
- Membandingkan Dua Commit Apa Pun
- Cara mempelajari detail komit tertentu
- Praktik: melihat perubahan dalam komit
- Melihat file tertentu pada komit tertentu
- Mencari perubahan terbaru dalam file
- Menganalisis kode orang lain melalui riwayat
- Mencari saat fungsi ditambahkan atau dihapus
- Mengapa pesan komit itu penting
- Struktur pesan komit yang ideal
- Conventional Commits dalam praktik
- Merapikan komit yang kurang baik
- Mengapa komit 'fix' bisa menjadi antipola
- Atomisitas perubahan: satu komit untuk satu tugas
- git add -p: alat penting untuk komit yang bersih
- Ringkasan dan tugas
Bài viết liên quan đến bài học này
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- git log, diff, show và blame: cách đọc lịch sử dự án trong Git
- git bisect: cách tìm commit làm hỏng code
- Git và GitHub: khác nhau thế nào và liên hệ ra sao
- Cách cài đặt Git trên Windows, macOS và Linux
Tất cả bài giảng của khóa học
- Pengantar: Git dari Nol hingga Pengembang yang Percaya Diri
- Apa Sebenarnya Git Itu — dan Kenapa Tanpanya Sulit Dapat Kerja
- Instalasi dan Konfigurasi: Menyiapkan Git untuk Pertama Kali
- Repositori Pertama: init, add, commit dan Keajaiban Indeks
- Membaca Riwayat: log, diff, show dan Navigasi ke Masa Lalu
- Cabang: Realitas Paralel untuk Kode Anda
- Membatalkan Kesalahan: restore, reset, revert — dengan Benar dan Berbahaya
- GitHub dan Repositori Jarak Jauh: Kode Anda di Awan
- Kerja Tim: Fork, Feature Branch, dan Pull Request
- Konflik Penggabungan: Jangan Panik — Pahami dan Selesaikan
- Proses Git di Tim Nyata: Alur Kerja Mana yang Dipilih
- Alat Lanjutan: rebase, stash, cherry-pick, dan tag
- Proyek Akhir: Simulasi Pengembangan Tim Nyata