Bagaimana cara mewarnai keluaran git-status?

93

Saya ingin mewarnai keluaran git-status sehingga:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Saya malah melihat file bertahap dengan warna hijau dan file tidak bertahap dengan warna biru: tangkapan layar dari git-status

.Gitconfig saya diatur dengan yang berikut ini berdasarkan beberapa pencarian:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red
Andy
sumber
2
Catatan: git 2.9.1 mendukung atribut italic dan strike. Lihat hasil edit saya di bawah.
VonC

Jawaban:

131

Dari git config doc :

color.status.<slot>

Gunakan warna yang disesuaikan untuk pewarnaan status. <slot>adalah salah satu dari:

  • header (teks header dari pesan status),
  • addedatau updated(file yang ditambahkan tetapi tidak dikomit),
  • changed (file yang diubah tetapi tidak ditambahkan dalam indeks),
  • untracked (file yang tidak dilacak oleh git),
  • branch (cabang saat ini),
  • nobranch (warna peringatan tidak ada cabang yang ditampilkan, default ke merah),
  • localBranchatau remoteBranch(nama cabang lokal dan jarak jauh, masing-masing, saat informasi cabang dan pelacakan ditampilkan dalam format status pendek),
  • unmerged (file yang memiliki perubahan yang tidak digabungkan).

Nilai variabel ini dapat ditentukan seperti pada color.branch.<slot>.

Jadi ini akan berhasil:

git config color.status.changed blue
git config color.status.untracked magenta

Namun:

new files = green
deleted files = red

Tidak mungkin: Anda harus memilih satu warna:

  • jika mereka ditambahkan ke indeks, mereka akan memilih warnanya color.status.added.
  • jika tidak ditambahkan ke indeks, mereka akan memilih warna atau color.status.modified.

Tentu saja, seperti yang dikomentari oleh elboletaire :

Ingatlah untuk mengaktifkan keluaran pewarnaan jika belum pernah diaktifkan sebelumnya:

git config --global color.ui true

Shaun Luttin menambahkan:

Perintah juga dapat mengambil beberapa parameter dalam tanda kutip. Ini termasuk dua warna (latar depan latar depan) dari daftar ini:

normal, hitam, merah, hijau, kuning, biru, magenta, cyan dan putih;

dan itu juga mencakup satu atribut (gaya) dari daftar ini:

tebal, redup, ul, berkedip dan mundur.

Jadi ini akan berhasil:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Catatan: dengan git 2.9.1 (Juli 2016), Skema pewarnaan keluaran mempelajari dua atribut baru, italic danmenyerang, selain cetak tebal, mundur, dll.

Lihat commit 9dc3515 , commit 54590a0 , commit 5621068 , commit df8e472 , commit ae989a6 , commit adb3356 , commit 0111681 (23 Jun 2016) by Jeff King ( peff) .
(Digabung oleh Junio ​​C Hamano - gitster- di commit 3c5de5c , 11 Jul 2016)

Ini juga memungkinkan " no-" untuk meniadakan atribut

Menggunakan " no-bold" daripada " nobold" lebih mudah dibaca dan lebih alami untuk diketik (bagi saya, meskipun saya adalah orang yang memperkenalkan "nobold" pada awalnya). Mudah untuk mengizinkan keduanya.

VonC
sumber
30
Ingatlah untuk mengaktifkan keluaran pewarnaan jika belum pernah diaktifkan sebelumnya:git config --global color.ui true
elboletaire
1
@elbolaire poin yang bagus. Saya telah memasukkannya dalam jawaban untuk visibilitas lebih.
VonC
1
Terima kasih, color.ui adalah jawabannya.
Robeezy