Bagaimana saya bisa mendapatkan warna terpisah untuk nama ref saat ini, lokal, dan jarak jauh ketika menggunakan format log git khusus?

16

Saya memiliki format log git khusus yang saya gunakan. Saya telah color.ui=truemengatur di .gitconfig. Misalnya format sederhana ini:

git log --pretty=format:"%h %d %s" --decorate

Ini akan mencetak sesuatu seperti

52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message

HEAD, local, remote akan menjadi output tanpa warna dibandingkan git log --oneline --decorateyang akan keluar HEAD (dalam 'bold cyan'), lokal (dalam 'bold green') dan remote (dalam 'bold red') dengan warna. Sekarang saya bisa membungkusnya %ddengan sesuatu seperti %Cred%d%Cresetyang akan menyebabkan semua nama ref menjadi merah.

Bagaimana saya bisa mendapatkan nama ref saat ini, lokal, dan jarak jauh untuk memiliki warna terpisah ketika menggunakan format khusus dengan git log?

Ben Doerr
sumber
Saya tidak berpikir itu mungkin: stackoverflow.com/questions/5889878/color-in-git-log/…
VonC
Ack, tidak terlihat pada stack overflow. Sayang sekali.
Ben Doerr
@VonC Mungkin Anda harus menambahkan itu sebagai jawaban?
NN
@NN saya punya. Di Stack Overflow. Tentang salah satu dari 10 ribu pertanyaan tentang Git.
VonC

Jawaban:

4

The git log --decorateakan menempatkan secara default:

  • KEPALA di cyan
  • cabang terpencil berwarna merah
  • tag berwarna hijau

dan dapat diubah melalui color.decoratekonfigurasi.

Tetapi git log --formatjangan menawarkan cara untuk menampilkan secara khusus HEAD atau remote atau cabang: ketiganya ditampilkan melalui %d, dengan satu warna mungkin.

- VonC pada "Color in git-log"

Tom Wijsman
sumber