Saya mencoba menyesuaikan format untuk git log
. Saya ingin semua komitmen ditampilkan dalam satu baris. Setiap baris hanya menampilkan baris pertama dari pesan commit.
Saya menemukan bahwa git log --pretty=short
harus melakukan trik tetapi pada komputer saya itu menunjukkan log lengkap seperti git log
halnya (selain cap waktu).
Selanjutnya, saya mencoba menggunakan penampung seperti yang didefinisikan dalam halaman manual . Meskipun demikian, saya tidak dapat menemukan perintah untuk mempersingkat pesan log. Saya mencoba baris ini git log --pretty=format:'%h : %s'
yang menunjukkan hash korsleting %h
dan pesan lengkap %s
dalam satu baris.
Saya menggunakan git version 1.7.3.1.msysgit.0
di Vista.
Mungkin itu ada hubungannya dengan cara saya menulis pesan komit saya. Berikut ini sebuah contoh:
Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
Jadi, dengan contoh yang diberikan saya hanya ingin menjadi output Added some functionality.
diawali oleh hash shortend.
%s
adalah subjek, bukan pesan lengkap.short
Format tidak semua dalam satu baris, meskipun (kejutan!)oneline
Adalah. Jikaoneline
dan%h : %s
bukan apa yang Anda inginkan, apa yang salah dengan mereka? Khususnya,%s
adalah subjek, baris pertama dari pesan komit. Itu memang versi singkat. Mungkinkah Anda telah membuat komitmen dengan satu baris panjang untuk pesan tersebut, dan melihatnya dengan bungkus kata?oneline
dan%s
tidak menampilkan apa yang kita harapkan, setidaknya di komputer saya. Saya memperbarui posting saya dengan contoh pesan komit saya. Mungkin itu membantu.Jawaban:
Sudahkah Anda mencoba ini?
Masalahnya mungkin Anda kehilangan baris kosong setelah baris pertama. Perintah di atas biasanya bekerja untuk saya, tetapi saya baru saja menguji komit tanpa baris kedua yang kosong. Saya mendapat hasil yang sama seperti Anda: seluruh pesan dalam satu baris.
Baris kedua kosong adalah standar dalam pesan git commit. Perilaku yang Anda lihat mungkin dilaksanakan dengan sengaja.
Baris pertama dari pesan komit dimaksudkan sebagai deskripsi singkat. Jika Anda tidak dapat membuatnya dalam satu baris, Anda dapat menggunakan beberapa baris, tetapi git menganggap semuanya sebelum baris kosong pertama menjadi "deskripsi singkat".
oneline
mencetak seluruh deskripsi singkat, jadi semua 3 baris Anda.sumber
git log
ke skrip penyaringan, tapi saya benar-benar akan menyarankan penulisan deskripsi singkat dengan baris kosong.git log --oneline
--oneline adalah singkatan untuk "--pretty = oneline --abbrev-commit" yang digunakan bersama.cut
. Itu akanawk
menangkal ... (BTW matematika T: berapa peluang bit berikutnya dalam urutan huffman yang dikodekan dengan benar, pada tingkat penyimpanan, aktif atau nonaktif? Petunjuk: Ini === 50%.)%
untuk'%s'
. C-;Apakah
git log --oneline
melakukan yang Anda inginkan?sumber
Log git yang lebih baik dan lebih mudah dengan membuat alias . Rekatkan kode di bawah ini ke terminal hanya sekali untuk satu sesi. Rekatkan kode ke profil zshrc atau bash untuk membuatnya tahan.
Keluaran
Output berubah baris
Atau (disarankan)
Tempel kode ini ke file global .gitconfig
Bacaan lebih lanjut.
https://coderwall.com/p/euwpig/a-better-git-log
Bacaan Tingkat Lanjut.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
sumber
git log --color --graph --pretty=format:"%%Cred%%h%%Creset -%%C(yellow)%%d%%Creset %%s %%Cgreen(%%cr) %%C(bold blue)<%%an>%%Creset" --abbrev-commit %1
. Anda dapat mengirimkan -p ke file bat ini untuk mendapatkan baris yang diubah jugaIni akan mencetak hanya pesan (baris subjek saja) tanpa hash :
sumber
%s
untuk subjek;%b
untuk tubuh;%B
untuk keduanya ("bahan mentah" di git-scm.com/docs/pretty-formats )Anda dapat mendefinisikan alias global sehingga Anda dapat memanggil log pendek dengan cara yang lebih nyaman:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
Kemudian Anda bisa menyebutnya menggunakan
git slog
(bahkan berfungsi dengan pelengkapan otomatis jika Anda mengaktifkannya).sumber
Tanpa komit pesan, hanya hash:
sumber
git log --pretty=format:"%H"
git rev-list HEAD
.jika Anda ingin selalu menggunakan
git log
cara seperti itu, Anda dapat menambahkan git alias olehgit config --global alias.log log --oneline
setelah itu
git log
akan mencetak apa yang biasanya dicetak olehgit log --oneline
sumber
"log --oneline"
).