Bagaimana saya bisa menampilkan git log output dengan (setidaknya) informasi ini:
* author
* commit date
* change
Saya ingin itu dikompresi menjadi satu baris per entri log. Apa format terpendek untuk itu?
(mencoba --format=oneline
tetapi itu tidak menunjukkan tanggal)
git
formatting
logging
Jesper Rønn-Jensen
sumber
sumber
Jawaban:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
melakukan pekerjaan. Output ini:
Terinspirasi oleh pertanyaan stackoverflow: "git log output seperti svn ls -v" , saya menemukan bahwa saya dapat menambahkan params persis yang saya butuhkan.
Untuk mempersingkat tanggal (tidak menunjukkan waktu) gunakan
--date=short
Jika Anda penasaran dengan opsi-opsi yang berbeda:
%h
= disingkat commit hash%x09
= tab (karakter untuk kode 9)%an
= nama%ad
penulis = tanggal penulis (format hormat --tanggal = opsi)%s
= subjekDari kernel.org/pub/software/scm /git/docs/git-log.html (bagian PRETTY FORMATS ) dengan komentar dari Vivek.
sumber
date=short
seperti cdunn2001 yang disarankan dalam jawaban laingit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
Saya menggunakan dua pengaturan .gitconfig ini:
% iklan adalah tanggal penulis, yang dapat dilampaui oleh
--date
atau opsi yang ditentukan dalam bait [log] di .gitconfig. Saya suka tanggal yang relatif karena itu memberikan perasaan langsung ketika hal-hal itu dilakukan. Output terlihat seperti ini:Ini semua tentu saja dalam warna, sehingga mudah untuk membedakan berbagai bagian dari garis log. Juga itu adalah default ketika mengetik
git log
karena bagian [format].UPDATE 2014: Karena git sekarang mendukung padding, saya punya amandemen yang bagus untuk versi di atas:
Hak ini menyelaraskan tanggal relatif dan kiri meluruskan nama-nama committer, yang berarti Anda mendapatkan tampilan seperti kolom yang mudah di mata.
Tangkapan layarUPDATE 2016: Karena penandatanganan komitmen GPG menjadi sesuatu, saya pikir saya akan memperbarui posting ini dengan versi yang menyertakan verifikasi tanda tangan (dalam tangkapan layar itu adalah huruf magenta tepat setelah komit). Penjelasan singkat tentang bendera:
Perubahan lain termasuk:
git log -g
sekarang berisi pemilih reflog.3 years, 4..
)%<(7,trunc)
atau periksa fitur git .mailmap untuk mempersingkat nama komiter)Inilah konfigurasi:
Semua dalam semua perataan kolom sekarang dipertahankan jauh lebih baik dengan mengorbankan beberapa (semoga) karakter yang tidak berguna. Jangan ragu untuk mengedit jika Anda memiliki perbaikan, saya ingin membuat warna pesan tergantung pada apakah komit ditandatangani, tetapi sepertinya itu tidak mungkin untuk dilakukan.
Tangkapan layarsumber
tig
jawabannya memberikan interaktivitas tanpa konfigurasi yang diperlukan, tetapi yang ini brilian - memberikan output satu baris yang diminta (dengan warna untuk boot!) Menggunakan perintah 'git log' standar. Sangat bagus.>
<
tanda lagi. Mencoba menambah%m
format, tetapi kemudian>
muncul setiap waktu, bahkan untuk yang normalgit log
. Adakah petunjuk bagaimana tanda memiliki perilaku normal dengan format?--oneline
hanyalah alias untuk--pretty=oneline
.format.pretty
adalah format cantik default, tetapi tidak ada cara untuk menimpaformat.oneline
afaik. Apa yang akan saya lakukan adalah menghilangkanpretty = shortlog
baris dalam konfigurasi dan kemudian membuat alias untuk menjalankangit log --pretty=shortlog
.gunakan
--date=
untuk mengatur format tanggalsumber
Jangan ragu untuk menggunakan yang ini:
Perhatikan
-7
di bagian akhir, untuk hanya menampilkan 7 entri terakhir.Lihat:
sumber
--date=short
dapat ditambahkan untuk membuatnya lebih pendek.git log
selalu menunjukkan riwayat cabang yang sedang diperiksa.%d
untuk mengembalikan "nama ref" seperti(HEAD -> master)
.reset
bukanauto
?tig adalah alternatif yang memungkinkan untuk menggunakan perintah git log , tersedia di distribusi open source * nix utama.
Pada debian atau ubuntu coba instal dan jalankan sebagai berikut:
(tig terinstal)
(log ditampilkan dalam pager sebagai berikut, dengan hash komit saat ini ditampilkan di bagian bawah)
Karena penurunan harga tidak mendukung pewarnaan teks, bayangkan: kolom 1: biru; kolom 2: hijau; kolom 3: warna teks standar. Baris terakhir, disorot. Tekan Q atau q untuk keluar.
tig
membenarkan kolom tanpa tepi yang kasar , yang tidak dijamin oleh tab ascii (% x09).Untuk format tanggal pendek, tekan kapital D (catatan: huruf kecil d membuka tampilan berbeda.) Konfigurasikan secara permanen dengan menambahkan
show-date = short
ke ~ / .tigrc; atau di[tig]
bagian dalam .git / configure atau ~ / .gitconfig.Untuk melihat seluruh perubahan :
Karena tig terpisah dari git dan tampaknya khusus * nix, mungkin memerlukan cygwin untuk menginstal di windows. Tapi untuk fedora saya percaya menginstal perintah yang
$ su
,(enter root password)
,# yum install tig
. Untuk freebsd mencoba% su
,(enter root password)
,# pkg_add -r tig
.Ngomong-ngomong, tig lebih baik daripada melihat log dengan cepat: Screenshot & Manual
sumber
tig
di konsol saya hanya memberi saya kesalahan-bash: tig: command not found
pact install tig
atau
... membaca jawaban cdunn2001 di atas: Saya akan kehilangan e = mail penulis dan hanya menyertakan nama penulis, sesuai Jesper dan knittl, tetapi sesuai dengan gagasan cdunn2001 tentang mempertahankan output dalam kolom dengan lebar konstan untuk kemudahan membaca ( ide yang hebat!). Sebagai pengganti kolom dibenarkan kiri terpisah untuk nama penulis, bagaimanapun, saya membungkus bendera itu di akhir perintah dengan tanda kurung atau mengimbanginya dengan pipa. (Bisa benar-benar karakter apa pun yang berfungsi sebagai alat bantu visual dalam membaca output ... walaupun mungkin masuk akal untuk menghindari back atau forward slash untuk mengurangi membingungkan output dengan direktori atau sesuatu.)
Output sampel:
sumber
Gunakan alias git yang sudah ditentukan sebelumnya, yaitu:
Dibuat sekali dengan perintah:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
Atau lebih berwarna dengan grafik:
sumber
Hasil:
Lebar hal konstan adalah yang pertama. Bagian yang paling tidak penting - domain email - adalah yang terakhir dan mudah difilter.
sumber
Untuk menunjukkan komitmen yang telah saya siapkan untuk mendorong saya lakukan
Outputnya terlihat seperti:
Di mana kolom pertama muncul dengan warna kuning, dan 'H' 'm' dan 't' dalam parentesis menunjukkan HEAD, master dan trunk dan muncul dalam warna "--decorate" yang biasanya
Ini dia dengan jeda baris sehingga Anda dapat melihat apa yang dilakukannya:
Saya telah alias "dipentaskan" dengan:
(Apakah ada cara yang lebih mudah untuk melarikan diri dari itu? Agak sulit untuk mengetahui apa yang perlu melarikan diri)
sumber
Semua saran yang disebutkan di atas menggunakan
%s
placeholder untuk subjek. Saya akan merekomendasikan untuk menggunakan%B
karena%s
memformat mempertahankan baris baru dan beberapa komit pesan baris muncul terjepit.sumber
Jalankan ini di folder proyek:
Dan jika Anda suka, tambahkan baris ini ke ~ / .gitconfig Anda:
sumber
Coba git log --pretty = lebih lengkap, ia akan menunjukkan kepada Anda: - Penulis: Tanggal Penulis: Komit: Tanggal Komit:
Semoga ini membantu.
sumber