Salah satu layanan paling mendasar yang disediakan oleh Git adalah sejarah proyek. Karena Git melacak semua perubahan pada file yang dibuat dalam repositori, Git dapat menawarkan fitur logging yang sangat kuat. Anda dapat menanyakan riwayat proyek dengan berbagai cara dan Anda dapat mengekstrak dan menampilkan berbagai data menggunakan satu perintah fleksibel.

Itu git log perintah sangat besar, yang terbesar dari setiap perintah Git biasa. Manualnya lebih dari 2.500 baris. Untung, git log memberikan sebagian besar perilakunya yang paling berguna hanya dari beberapa opsi utama.

Logging Dasar Dengan Perilaku Default

Secara default, git log menunjukkan daftar komit kronologis terbalik. Setiap komit menyertakan hash, penulis, tanggal, dan pesan komitnya:

Perintah menggunakan pager (misalnya less, more) untuk menampilkan output penuh sehingga Anda dapat dengan mudah menavigasi hasilnya. Anda dapat mengonfigurasi Git untuk menggunakan program pilihan Anda, seperti pager terbanyak.

Berikut beberapa keluaran git log dari repositori kode sumber git diri:

instagram viewer
komit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, Origin/next,
asal/master, asal/KEPALA)
Pengarang: Junio ​​C Hamano
Tanggal: Sen 14 Jun 13:23:28 2021 +0900
Angkatan kedua
Ditandatangani oleh: Junio ​​C Hamano

Hasilnya dimulai dengan hash komit (670...) diikuti oleh daftar cabang yang saat ini mengarah ke komit itu (KEPALA -> tuan, dll.)

Baris berikutnya menjelaskan pembuat komit ini, memberikan nama dan alamat email mereka.

Tanggal dan waktu penuh komit mengikuti di baris berikutnya.

Akhirnya, isi lengkap dari pesan komit muncul. Anda dapat mengontrol hampir semua hal lain yang ditawarkan git log dengan opsi baris perintah. Ada dua jenis opsi utama:

  • Pemformatan, yang mendefinisikan bagaimana Git menampilkan setiap komit.
  • Pemfilteran, yang menentukan komit mana git log termasuk.

Selain opsi baris perintah, git log menerima argumen yang menentukan file, komit, cabang, atau jenis referensi lainnya. Ini menerapkan penyaringan lebih lanjut.

Memformat Keluaran Log Git

Salah satu penyesuaian yang paling sederhana adalah --oneline opsi yang menghasilkan output yang sangat singkat:

git log --oneline

Setiap baris di log sekarang hanya berisi hash komit yang disingkat dan subjek dari pesan komit. Ini adalah cara terbaik untuk mendapatkan ikhtisar komitmen terbaru untuk proyek:

Sayangnya, tanpa konteks lain, informasi ini tidak selalu berguna. Ini mungkin memberi Anda perasaan yang tidak jelas untuk proyek tersebut, tetapi tidak memiliki tanggal dan informasi berguna lainnya tentang penulis dan file.

Melihat Grafik Cabang

Itu --grafik opsi memungkinkan Anda untuk memvisualisasikan hubungan antar cabang. Ini sangat mendasar tetapi dapat membantu menguraikan sejarah yang rumit.

git log --oneline --graph

Terkait: Cara Membuat Cabang Baru di Git

Output Cantik yang Disesuaikan

Anda dapat mencapai pemformatan yang lebih rumit dengan menentukannya secara rinci menggunakan --cantik pilihan. Sintaksnya berubah dari sangat sederhana menjadi jauh lebih kompleks, jadi lihat manual untuk detail lengkap complete.

git log --pretty=pendek

Pada dasarnya sama dengan git log tanpa tanggal atau pesan lengkap:

git log --pretty=oneline

Setara dengan git log --oneline.

git log --cukup=lebih lengkap

Termasuk banyak detail. Itu bahkan memisahkan penulis dan pembuat yang mungkin, secara teori, menjadi orang yang berbeda:

Dengan format: varian, Anda dapat menyediakan string yang berisi konten apa pun yang Anda inginkan, termasuk placeholder yang diganti dengan berbagai data. Berikut adalah beberapa contoh placeholder:

  • %H komit hash
  • %h disingkat commit hash
  • %iklan tanggal penulis
  • %ar tanggal penulis, kerabat
  • %s komit subjek pesan
  • %b komit badan pesan
  • %p hash induk disingkat

Anda dapat menambahkan karakter tetap ke output dan mewarnainya. Contoh ini juga menunjukkan variasi pada format tanggal:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Perhatikan bahwa tanda kurung mengelilingi tanggal. Pemformatan apa pun yang Anda pilih, jika Anda ingin output berguna dalam saluran atau untuk bentuk pemrosesan teks lainnya, Anda harus mempertimbangkan cara membatasi setiap bagian dari output.

Menampilkan Perbedaan di Log

Detail penting saat melihat riwayat repositori adalah perbedaan itu sendiri. Bagaimanapun, mereka mewakili apa yang sebenarnya berubah dalam kode! Sebagai permulaan, Anda bisa mendapatkan ringkasan perubahan di samping setiap komit menggunakan --shortstat:

git log --shortstat

Ini menambahkan baris seperti:

1 file diubah, 48 penyisipan (+), 2 penghapusan (-)

Ke bagian bawah setiap komit. Anda akan sering melihat ringkasan semacam ini—di seluruh halaman di GitHub, misalnya—dan ini adalah cara yang berguna untuk menilai cakupan komit tertentu dengan cepat. Untuk informasi lebih rinci, Anda dapat menyertakan output patch lengkap (diffs) menggunakan -p bendera:

git log -p

Memfilter Keluaran Log Git

Pemformatan apa pun yang Anda terapkan, Anda masih akan melihat log lengkap semua komit di cabang saat ini. Meskipun Git memecahnya menjadi beberapa halaman, itu masih bisa menghasilkan banyak output. Opsi berikut memungkinkan Anda untuk menyesuaikan komit mana yang termasuk dalam log.

Membatasi berdasarkan Jumlah

Jika Anda hanya ingin memangkas hasil untuk menampilkan beberapa komit terbaru, gunakan -[jumlah] sintaksis:

git log -2

Membatasi berdasarkan Tanggal

Untuk membatasi kumpulan komit ke rentang tanggal tertentu, gunakan --sejak (--setelah) dan --sampai (--sebelum) pilihan. Ini masing-masing mengambil tanggal dalam format ISO 8601. Anda dapat menggunakan keduanya --sejak atau --sampai sendiri, atau keduanya bersama-sama untuk menentukan rentang. Pilihannya --setelah dan --sebelum adalah sinonim.

git log --since="2021-01-01" --until="2021-05-01"

Membatasi berdasarkan File

Log Git dapat fokus pada file tertentu daripada setiap file di repositori Anda. Ini bagus untuk membantu Anda mengetahui bagaimana file tertentu telah berubah dari waktu ke waktu. Cukup tambahkan nama file ke akhir perintah git Anda:

git log nama file

Anda hanya akan melihat komit yang terpengaruh nama file.

Perbedaan Antar Cabang

Anda mungkin memiliki beberapa persyaratan unik saat melihat log cabang. Misalnya, daripada melihat seluruh riwayat, Anda mungkin hanya ingin melihat apa yang berubah di cabang tertentu itu. Git log dapat membantu melalui ref1..ref2 sintaksis. Ada tiga pendekatan yang sedikit berbeda yang dapat Anda gunakan:

  1. Lihat komit yang ada di utama, tetapi bukan cabang:
    git log --oneline Origin/branch..Origin/main
  2. Lihat komit yang ada di cabang, tetapi bukan yang utama:
    git log --oneline asal/utama..asal/cabang
  3. Lihat komit yang hanya ada di cabang atau utama:
    git log --oneline asal/cabang...asal/utama

Sama seperti Anda dapat melihat riwayat antar cabang menggunakan ref1..ref2 sintaks, Anda juga dapat melihat riwayat antar tag dengan cara yang sama. Bagaimanapun, baik tag dan cabang adalah jenis referensi.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Jika Anda sedang menyiapkan catatan rilis untuk proyek yang lebih besar, git shortlog harus menjadi port panggilan pertama Anda. Ini menghasilkan daftar penulis dengan subjek komit di samping mereka. Anda dapat memberikan rentang referensi untuk membatasi riwayat dengan cara yang mirip dengan git log:

git shortlog v2.32.0-rc3..v2.32.0

Itu perintah git show bahkan lebih serbaguna dari git log. Ini dapat bekerja dengan tag dan jenis objek git lainnya di luar riwayat komit. Ini berbagi banyak opsi dengan git log, tetapi Anda hanya akan benar-benar membutuhkannya jika Anda perlu menggali detail tingkat yang lebih rendah.

Tinjau Masa Lalu Dengan Git Log

Git log adalah perintah yang rumit, tetapi Anda bisa mendapatkan banyak manfaat dari opsi paling dasar. Menjelajahi riwayat repositori adalah cara terbaik untuk memahami seberapa sering perubahan terjadi dan berapa banyak orang yang melakukannya. Setelah Anda memiliki pemahaman yang baik tentang sejarah proyek, Anda akan berada dalam posisi yang bagus untuk berkontribusi sendiri.

Surel
Bergabunglah dengan Tren Pengkodean Sosial dan Berkontribusi ke Repositori GitHub

Ingin melatih otot pengkodean Anda dan membantu proyek sumber terbuka? Berikut cara berkontribusi ke GitHub.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • GitHub
  • Kiat Pengkodean
Tentang Penulis
Bobby Jack (54 Artikel Diterbitkan)

Bobby adalah penggemar teknologi yang bekerja sebagai pengembang perangkat lunak selama hampir dua dekade. Dia bersemangat tentang game, bekerja sebagai Editor Ulasan di Majalah Switch Player, dan mendalami semua aspek penerbitan online & pengembangan web.

More From Bobby Jack

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan.

.