Bagaimana cara mewarnai konsol Git?

371

Baru-baru ini saya melihat bahwa gitkonsol di Windows berwarna, misalnya Hijau untuk tambahan, merah untuk penghapusan, dll. Bagaimana cara saya mewarnai gitkonsol saya seperti itu?

Untuk menginstalnya, saya menggunakan perintah: $ sudo apt-get install git-core

MauroPorras
sumber
6
Mulai git1.8.4, Anda akan melihat warna secara default. Lihat jawaban saya di bawah ini .
VonC
1
@VonC git 1.9.1 di Ubuntu 14.04, tidak terjadi. Harus mengatur konfigurasi dari jawaban JoelPurra sendiri.
Izkata
1
@Izkata aneh, saya akan mengujinya nanti, tapi bagaimana dengan git 2.1+? (seperti yang saya komentari di bawah ini di stackoverflow.com/questions/10998792/… )
VonC

Jawaban:

682

Seperti dicatat oleh @VonC , color.uidefault ke autosejak Git 1.8.4


Dari pertanyaan Unix & Linux Stackexchange Bagaimana cara mewarnai keluaran git? dan jawabannya oleh @Evgeny :

git config --global color.ui auto

Ini color.uiadalah konfigurasi meta yang mencakup semua color.*konfigurasi yang tersedia dengan gitperintah. Ini dijelaskan secara mendalam di git help config.

Jadi pada dasarnya lebih mudah dan lebih banyak bukti di masa depan daripada mengatur pengaturan yang berbeda color.*secara terpisah.

Penjelasan mendalam dari git configdokumentasi :

color.ui: Variabel ini menentukan nilai default untuk variabel seperti color.diffdan color.grepyang mengontrol penggunaan warna per kelompok perintah. Cakupannya akan diperluas saat lebih banyak perintah mempelajari konfigurasi untuk menetapkan default untuk --coloropsi. Setel ke alwaysjika Anda ingin semua output yang tidak dimaksudkan untuk konsumsi mesin menggunakan warna, trueatau autojika Anda ingin output tersebut menggunakan warna saat ditulis ke terminal, atau ke falseatau neverjika Anda lebih suka perintah git untuk tidak menggunakan warna kecuali jika diaktifkan secara eksplisit dengan beberapa konfigurasi lain atau --coloropsi.

Joel Purra
sumber
11
Ini berfungsi di OSX juga, bukan hanya linux seperti pertanyaan yang diajukan
StackExchange What The Heck
Mungkin perlu menambahkan 'benar' di akhir. git config --global color.ui auto true
Vamshi
6
@ Skeptor: tidak, autosudah cukup.
Joel Purra
2
@Phani: ya, ini gigih.
Joel Purra
5
Itu persisten karena ia menambahkan ui = autoentri ke [color]bagian dalam ~/.gitconfigfile pengguna .
Andris
55

Sebagai contoh, lihat https://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/

Bagian yang menarik adalah

Output berwarna:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
KingCrunch
sumber
3
Saya menggunakan versi git yang lebih lama dan pengaturan color.ui autotidak berfungsi untuk saya, ini berhasil. Terima kasih.
Matt K
30

Tambahkan ke file .gitconfig Anda kode selanjutnya:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan
Pemenang
sumber
7

Git secara otomatis mewarnai sebagian besar outputnya jika Anda memintanya. Anda bisa menjadi sangat spesifik tentang apa yang Anda inginkan diwarnai dan bagaimana caranya; tetapi untuk mengaktifkan semua pewarnaan terminal default, atur color.ui ke true:

git config --global color.ui true
Tanmay
sumber
6

Di Ubuntu atau platform lain (ya, Windows juga!); mulai git1.8.4 , yang dirilis 2013-08-23 , Anda tidak perlu melakukan apa pun :

Banyak tutorial mengajarkan pengguna untuk mengatur "color.ui" menjadi "auto" sebagai hal pertama setelah Anda mengatur " user.name/email" untuk memperkenalkan diri kepada Git. Sekarang variabelnya adalah " auto".

Jadi Anda akan melihat warna secara default.

VONC
sumber
2
(baik, bahkan Windows, tergantung pada terminal: stackoverflow.com/a/12133244/6309 )
VonC
2
Menggunakan Ubuntu pada 2014, instal git dan masih harus dijalankan git config --global color.ui auto. Hal yang sama berlaku untuk Mac saya, satu-satunya yang default autoadalah Git Bash pada PC Windows saya.
sargas
1
@sargas Tentu, Anda perlu menginstal dari PPA : launchpad.net/~git-core/+archive/ppa (untuk Ubuntu) atau git-scm.com/download/mac (untuk Mac)
VonC
1
Begitu ya, jadi itu tergantung sumbernya. Saya menghargai waktu Anda untuk mengomentari ini.
sargas
6

Di ~/.gitconfigfile Anda , cukup tambahkan ini:

[color]
  ui = auto

Ini menangani semua perintah git Anda.

Chuntao Lu
sumber
5

Cara lain adalah mengedit .gitconfig(buat satu jika tidak ada), misalnya:

vim ~/.gitconfig

lalu tambahkan:

[color]
  diff = auto
  status = auto
  branch = auto
atupal
sumber
3
seperti @ chuntao-lu sebutkan [color] ui = autosudah cukup.
Chacko Mathew
5

GIT menggunakan output berwarna secara default tetapi pada beberapa sistem seperti CentOS tidak diaktifkan. Anda dapat mengaktifkannya seperti ini

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Anda dapat memilih perintah yang diminta dari sini.

Di sini --global adalah opsional untuk menerapkan tindakan untuk setiap repositori di sistem Anda. Jika Anda ingin menerapkan pewarnaan hanya untuk repositori saat ini maka Anda dapat melakukan sesuatu seperti ini -

 git config color.ui  true 
Deepak Dixit
sumber
1

Dengan Git 2.18, Anda memiliki kontrol lebih besar tentang cara Anda ingin menentukan warna di konsol.
Perintah " git config" menggunakan opsi terpisah mis. " --int", " --bool", Dll. Untuk menentukan tipe penelepon yang ingin ditafsirkan nilainya .

--type=<typename>Opsi " " baru telah diperkenalkan, yang akan membuatnya lebih bersih untuk mendefinisikan tipe baru.

Lihat commit fb0dc3b (18 Apr 2018), dan komit 0a8950b (09 Apr 2018) oleh Taylor Blau ( ttaylorr) .
(Digabung oleh Junio ​​C Hamano - gitster- di commit e3e042b , 08 Mei 2018)

builtin/config.c: dukungan --type=<type>sebagai alias yang disukai untuk--<type>

git configtelah lama memungkinkan kemampuan penelepon untuk memberikan 'penentu tipe', yang menginstruksikan git configuntuk (1) memastikan bahwa nilai yang masuk dapat diartikan sebagai tipe itu, dan (2) bahwa nilai keluar dikanonik berdasarkan jenis itu.

Dalam seri lain, kami mengusulkan untuk memperluas fungsionalitas ini dengan --type=colordan --defaultuntuk menggantikan --get-color.

Namun, kami secara tradisional menggunakan --colorberarti "mewarnai keluaran ini", alih-alih "nilai ini harus diperlakukan sebagai warna".

Saat ini, git configtidak mendukung pewarnaan semacam ini, tetapi kita harus berhati-hati untuk menghindari jongkok pada opsi ini terlalu cepat, sehingga git configdapat mendukung --color(dalam arti tradisional) di masa depan, jika itu diinginkan.

Dalam patch ini, kami mendukung --type=<int|bool|bool-or-int|...>selain --int, --bool, dan lain-lain
ini memungkinkan patch yang akan datang tersebut untuk mendukung query nilai warna dengan default via --type=color --default=..., tanpa menyia-nyiakan --color.

Kami mempertahankan perilaku historis mengeluh ketika beberapa --<type>bendera bergaya legacy diberikan, serta memperluasnya ke --type=<type>bendera gaya baru yang saling bertentangan . --int --type=int(dan pasangan komutatifnya) tidak mengeluh, tetapi --bool --type=int(dan pasangan komutatifnya) mengeluh .

Jadi sebelum Anda punya --booldan --intsekarang ( dokumentasi ):

--type <type>

' git config' akan memastikan bahwa setiap input atau output valid di bawah batasan tipe yang diberikan, dan akan mengkanoniskan nilai keluar dalam <type>bentuk kanonik.

Valid <type>termasuk:

  • ' bool': mengkanoniskan nilai sebagai " true" atau " false".
  • ' int': mengkanoniskan nilai sebagai angka desimal sederhana. Sufiks opsional ' k', ' m', atau ' g' akan menyebabkan nilai dikalikan dengan 1024, 1048576, atau 1073741824 saat diinput.
  • ' bool-or-int': dikanonikalisasi sesuai dengan ' bool' atau ' int', seperti dijelaskan di atas.
  • ' path': dikanonikkan dengan menambahkan ~petunjuk ke nilai $HOMEdan ~userke direktori home untuk pengguna yang ditentukan. Specifier ini tidak berpengaruh ketika mengatur nilai (tetapi Anda dapat menggunakan git config section.variable ~/dari baris perintah untuk membiarkan shell Anda melakukan ekspansi.)
  • ' expiry-date': dikanonikkan dengan mengonversi dari string tanggal yang tetap atau relatif ke stempel waktu. Specifier ini tidak berpengaruh ketika mengatur nilai.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Perhatikan bahwa Git 2.22 (Q2 2019) menjelaskan " git config --type=color ..." dimaksudkan untuk menggantikan " git config --get-color", tetapi ada sedikit perbedaan yang tidak didokumentasikan, yang sekarang sudah diperbaiki.

Lihat komit cd8e759 (05 Mar 2019) oleh Jeff King ( peff) .
(Digabung oleh Junio ​​C Hamano - gitster- di commit f6c75e3 , 20 Mar 2019)

config: --type=colorkeluaran dokumen adalah baris lengkap

Meskipun --type=coloropsi " " yang lebih baru untuk " git config" dimaksudkan agar kompatibel dengan --get-coloropsi " " tradisional , tidak seperti yang terakhir, " " outputnya bukan garis yang tidak lengkap yang tidak memiliki LF pada akhirnya.
Itu membuatnya konsisten dengan output dari tipe lain seperti " git config --type=bool".

Dokumentasikan , karena terkadang mengejutkan pengguna yang tidak menaruh curiga.

Ini berbunyi:

--type=color [--default=<default>]lebih disukai daripada --get-color (tetapi catatan yang --get-colorakan menghilangkan baris baru yang dicetak oleh --type=color).


Anda dapat melihat git config --type=booldigunakan dengan Git 2.26 (Q1 2020) untuk mengganti " git config --bool" panggilan dalam contoh template.

Lihat commit 81e3db4 (19 Jan 2020) oleh Lucius Hu ( lebensterben) .
(Digabung oleh Junio ​​C Hamano - gitster- dalam komit 7050624 , 30 Jan 2020)

templates: perbaiki opsi jenis yang sudah usang --bool

Ditandatangani oleh: Lucius Hu

The --boolpilihan untuk git-configditandai sebagai sejarah, dan pengguna dianjurkan untuk menggunakan --type=boolsebagai gantinya.
Komit ini menggantikan semua kemunculan --booldalam templat.

Juga mencatat bahwa, tidak ada pilihan lain jenis usang yang ditemukan, termasuk --int, --bool-or-int, --path, atau --expiry-date.

VONC
sumber
0

lihat di sini: https://nathanhoad.net/how-to-colours-in-git/

Langkah:

  1. Buka ~ / .gitconfig untuk mengedit

    vi ~ / .gitconfig

  2. Rekatkan kode berikut:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Simpan file.

Cukup ubah file apa saja di repo lokal Anda dan lakukan

git status
gajanan malvade
sumber
Sudah ada # answer-29320572 yang sama oleh Victor
criticabug