วิธีการทำสีคอนโซล Git?


371

ฉันเพิ่งเห็นว่าgitคอนโซลใน Windows เป็นสีเช่นสีเขียวสำหรับการเพิ่มสีแดงสำหรับการลบ ฯลฯ ฉันจะสีของฉันได้อย่างไรgitคอนโซลเช่นนั้นได้อย่างไร

ในการติดตั้งฉันใช้คำสั่ง: $ sudo apt-get install git-core


6
เริ่ม git1.8.4 คุณควรเห็นสีเป็นค่าเริ่มต้น ดูคำตอบของฉันด้านล่าง
VonC

1
@VonC git 1.9.1 บน Ubuntu 14.04 ไม่ได้เกิดขึ้น ต้องตั้งค่าคอนฟิกจากคำตอบของ JoelPurra เอง
Izkata

1
@ อิซกาตะแปลกฉันจะทดสอบในภายหลัง แต่สิ่งที่เกี่ยวกับคอมไพล์ 2.1+? (ตามที่ฉันแสดงความคิดเห็นด้านล่างในstackoverflow.com/questions/10998792/ … )
VonC

คำตอบ:


682

ตามที่ระบุไว้โดย@VonCให้ใช้color.uiค่าเริ่มต้นautoตั้งแต่ Git 1.8.4


จากคำถาม Unix & Linux Stackexchange วิธีทำให้ colorize ของ git เป็นอย่างไร และคำตอบโดย @Evgeny :

git config --global color.ui auto

นี่color.uiคือการกำหนดค่าเมตาที่รวมการcolor.*กำหนดค่าต่างๆทั้งหมดที่มีให้กับgitคำสั่ง git help configนี่คือคำอธิบายในเชิงลึกใน

ดังนั้นโดยพื้นฐานแล้วการพิสูจน์ได้ง่ายกว่าและอนาคตมากกว่าการตั้งcolor.*ค่าแยกกัน

คำอธิบายในเชิงลึกจาก git configเอกสารประกอบ :

color.ui: ตัวแปรนี้กำหนดค่าเริ่มต้นสำหรับตัวแปรเช่นcolor.diffและcolor.grepควบคุมการใช้สีต่อตระกูลคำสั่ง ขอบเขตจะขยายเป็นคำสั่งเพิ่มเติมเรียนรู้การกำหนดค่าเพื่อตั้งค่าเริ่มต้นสำหรับ--colorตัวเลือก ตั้งค่าเป็นalwaysหากคุณต้องการให้เอาต์พุตทั้งหมดไม่ได้มีไว้สำหรับการใช้งานเครื่องเพื่อใช้สีเป็นtrueหรือautoหากคุณต้องการให้เอาต์พุตดังกล่าวใช้สีเมื่อเขียนไปยังเทอร์มินัลหรือfalseหรือneverหากคุณต้องการคำสั่ง git ที่จะไม่ใช้สี การกำหนดค่าอื่น ๆ หรือ--colorตัวเลือก


11
ใช้งานได้กับ OSX ด้วยไม่ใช่แค่ linux ตามที่ถาม
StackExchange What The Heck

อาจจำเป็นต้องเพิ่ม 'จริง' ในตอนท้าย git config --global color.ui auto true
Vamshi

6
@Skeptor: ไม่autoเพียงพอ
Joel Purra

2
@Phani: ใช่มันเป็นแบบถาวร
Joel Purra

5
มันคงอยู่เพราะจะเพิ่มui = autoรายการใน[color]ส่วนใน~/.gitconfigไฟล์ของผู้ใช้
Andris

55

ตัวอย่างเช่นดูhttps://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/

ส่วนที่น่าสนใจคือ

เอาท์พุท Colorized:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto

3
ฉันใช้คอมไพล์รุ่นเก่ากว่าและการตั้งค่าcolor.ui autoไม่ได้ผลสำหรับฉันสิ่งนี้ทำได้ ขอบคุณ.
Matt K

30

เพิ่มไฟล์. gitconfig ของคุณในรหัสถัดไป:

  [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

7

Git จะให้สีส่วนใหญ่ของผลลัพธ์โดยอัตโนมัติถ้าคุณถาม คุณสามารถระบุได้อย่างเฉพาะเจาะจงเกี่ยวกับสิ่งที่คุณต้องการสีและวิธีการ; แต่หากต้องการเปิดเทอร์มินัลการระบายสีเริ่มต้นทั้งหมดให้ตั้ง color.ui เป็นจริง:

git config --global color.ui true

6

ใน Ubuntu หรือแพลตฟอร์มอื่น ๆ (ใช่ Windows ด้วย!); เริ่มต้นgit1.8.4ซึ่งได้รับการปล่อยตัวออกมา 2013/08/23 , คุณจะไม่ต้องทำอะไร :

ผู้สอนหลายคนสอนให้ผู้ใช้ตั้ง "color.ui" เป็น "auto" เป็นสิ่งแรกหลังจากที่คุณตั้งค่า " user.name/email" เพื่อแนะนำตัวเองให้รู้จักกับ Git ตอนนี้ตัวแปรเริ่มต้นที่ " auto"

ดังนั้นคุณจะเห็นสีตามค่าเริ่มต้น


2
(ดีแม้แต่ Windows ขึ้นอยู่กับเทอร์มินัล: stackoverflow.com/a/12133244/6309 )
VonC

2
ใช้อูบุนตูในปี 2014 git config --global color.ui autoติดตั้งคอมไพล์และยังคงมีการวิ่ง เช่นเดียวกับ Mac ของฉันสิ่งเดียวที่เป็นค่าเริ่มต้นautoคือ Git Bash บนพีซี Windows ของฉัน
sargas

1
@sargas แน่นอนว่าคุณต้องติดตั้งจาก PPA : launchpad.net/~git-core/+archive/ppa (สำหรับ Ubuntu) หรือgit-scm.com/download/mac (สำหรับ Mac)
VonC

1
ฉันเห็นแล้วมันขึ้นอยู่กับแหล่งที่มา ฉันขอขอบคุณเวลาของคุณที่จะแสดงความคิดเห็นในเรื่องนี้
sargas


5

อีกวิธีคือแก้ไข.gitconfig(สร้างถ้าไม่มี) ตัวอย่างเช่น:

vim ~/.gitconfig

แล้วเพิ่ม:

[color]
  diff = auto
  status = auto
  branch = auto

3
ตามที่ @ chuntao-lu ที่กล่าวถึง[color] ui = autoก็เพียงพอแล้ว
Chacko Mathew

5

GIT ใช้เอาต์พุตสีโดยค่าเริ่มต้น แต่ในบางระบบเช่น CentOS จะไม่เปิดใช้งาน คุณสามารถเปิดใช้งานเช่นนี้

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

คุณสามารถเลือกคำสั่งที่ต้องการได้จากที่นี่

นี่ - โกลบอลเป็นทางเลือกเพื่อใช้การดำเนินการกับที่เก็บในระบบของคุณ หากคุณต้องการใช้การระบายสีสำหรับพื้นที่เก็บข้อมูลปัจจุบันเท่านั้นคุณสามารถทำสิ่งนี้ -

 git config color.ui  true 

1

ด้วย Git 2.18 คุณสามารถควบคุมวิธีการระบุสีในคอนโซลได้มากขึ้น
"การgit config" ใช้คำสั่งแยกตัวเลือกเช่น " --int", " --bool" ฯลฯเพื่อระบุสิ่งที่พิมพ์โทรต้องการค่าที่จะตีความว่าเป็นเพื่อระบุสิ่งที่พิมพ์โทรต้องการค่าที่จะตีความว่าเป็น

ใหม่ "--type=<typename>มีการแนะนำตัวเลือก " ซึ่งจะทำให้การกำหนดประเภทใหม่สะอาดขึ้น

ดูคอมมิท fb0dc3b (18 เม.ย. 2018) และคอมมิท 0a8950b (09 เม.ย. 2018) โดยเทย์เลอร์บttaylorrเลา( )
(ผสานโดยJunio ​​C Hamano - gitster- in e3e042b , 08 พฤษภาคม 2018)

builtin/config.c: สนับสนุน--type=<type>เป็นนามแฝงที่ต้องการสำหรับ--<type>

git configอนุญาตให้ผู้เรียกสามารถระบุ 'ตัวระบุชนิด' ได้นานซึ่งสั่งgit configให้ (1) ตรวจสอบให้แน่ใจว่าค่าที่เข้ามาสามารถตีความได้ว่าเป็นประเภทนั้นและ (2) ค่าที่ส่งออกจะถูกกำหนดให้เป็นมาตรฐานภายใต้ประเภทนั้น

ในซีรีส์อื่นเราเสนอให้ขยายการทำงานนี้กับ --type=colorและจะเข้ามาแทนที่--default--get-color

อย่างไรก็ตามเรามัก--colorจะใช้เพื่อหมายถึง "colorize ผลลัพธ์นี้" แทน "ค่านี้ควรถือว่าเป็นสี"

ขณะนี้git configยังไม่รองรับการทำสีแบบนี้ แต่เราควรระวังไม่ให้ตัวเลือกนี้ช้าเกินไปเพื่อให้ git configสามารถรองรับได้--color(ตามความหมายดั้งเดิม) ในอนาคตหากต้องการ

ในแพทช์นี้เราสนับสนุน--type=<int|bool|bool-or-int|...>นอกเหนือไป--int, --boolและอื่น ๆ
ซึ่งจะช่วยให้แพทช์ดังกล่าวจะเกิดขึ้นเพื่อสนับสนุนการสอบถามค่าสีที่มีค่าเริ่มต้นผ่าน--type=color --default=...โดยไม่ใช้จ่ายสุรุ่ยสุร่าย--colorโดยไม่ใช้จ่ายสุรุ่ยสุร่าย

เรายังคงรักษาพฤติกรรมทางประวัติศาสตร์ของการร้องเรียนเมื่อ--<type>มีการมอบธงสไตล์ดั้งเดิมหลายรายการรวมถึงขยาย--type=<type>ธงนี้เป็นธงสไตล์ใหม่ที่ขัดแย้งกัน --int --type=int(และคู่สลับของมัน) ไม่บ่น แต่--bool --type=int(และคู่สลับของมัน) ไม่

ดังนั้นก่อนที่คุณจะมี--boolและ--intตอนนี้ ( เอกสาร ):

--type <type>

' git config' จะตรวจสอบให้แน่ใจว่าอินพุตหรือเอาต์พุตใด ๆ นั้นถูกต้องภายใต้ข้อ จำกัด ประเภทที่กำหนดและจะกำหนดค่าออกให้เป็นมาตรฐานใน<type>เป็นรูปแบบมาตรฐาน

ที่ถูกต้อง<type>รวมถึง:

  • ' bool': กำหนดค่าแบบบัญญัติให้เป็น " true" หรือ " false"
  • ' int': ค่า canonicalize เป็นเลขทศนิยมอย่างง่าย คำต่อท้ายที่เป็นตัวเลือก ' k', ' m' หรือ ' g' จะทำให้ค่าคูณด้วย 1024, 1048576 หรือ 1073741824 เมื่อป้อนข้อมูล
  • ' bool-or-int': บัญญัติให้เป็นไปตาม ' bool' หรือ ' int' ตามที่อธิบายไว้ข้างต้น
  • ' path': canonicalize โดยการเพิ่มชั้นนำ~ค่าของ$HOMEและ~userไปยังไดเรกทอรีบ้านสำหรับผู้ใช้ที่ระบุ ตัวระบุนี้ไม่มีผลเมื่อตั้งค่า (แต่คุณสามารถใช้git config section.variable ~/จากบรรทัดคำสั่งเพื่อให้เชลล์ทำการขยาย)
  • ' expiry-date': canonicalize โดยการแปลงจากสตริงวันที่คงที่หรือสัมพันธ์กับการประทับเวลา ตัวระบุนี้ไม่มีผลเมื่อตั้งค่า
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

โปรดทราบว่า Git 2.22 (Q2 2019) อธิบายว่า " git config --type=color ..." มีวัตถุประสงค์เพื่อแทนที่ " git config --get-color" แต่มีความแตกต่างเล็กน้อยที่ไม่ได้บันทึกไว้ซึ่งตอนนี้ได้รับการแก้ไขแล้ว

ดูกระทำ cd8e759 (5 มีนาคม 2019) โดยเจฟฟ์คิง (peff )
(ผสานโดยJunio ​​C Hamano - gitster- in f6c75e3 , 20 Mar 2019)

config: เอกสาร --type=colorเอาท์พุทเป็นบรรทัดที่สมบูรณ์

แม้ว่า--type=colorตัวเลือกใหม่สำหรับ " git config" จะถูกปรับให้เข้ากันได้กับ--get-colorตัวเลือกแบบดั้งเดิม " " ซึ่งแตกต่างจากรุ่นหลัง แต่เอาต์พุตของมันไม่ได้เป็นบรรทัดที่ไม่สมบูรณ์ซึ่งขาด LF ในตอนท้าย
ที่ทำให้สอดคล้องกับการส่งออกประเภทอื่น ๆ เช่น "git config --type=bool "

จัดทำเป็นเอกสารเพราะบางครั้งก็ทำให้ผู้ใช้งานที่ไม่สงสัยเกิดความประหลาดใจ

ตอนนี้อ่าน:

--type=color [--default=<default>]เป็นที่ต้องการมากกว่า--get-color (แต่โปรดทราบว่า--get-colorจะละเว้นบรรทัดใหม่ต่อท้ายที่พิมพ์โดย --type=color)


คุณสามารถดูการgit config --type=boolใช้กับ Git 2.26 (ไตรมาสที่ 1 ปี 2020) เพื่อแทนที่ " git config --bool" การโทรในเทมเพลตตัวอย่าง

ดูกระทำ 81e3db4 (19 มกราคม 2020) โดยลูเซียส Hu (lebensterben )
(ผสานโดยJunio ​​C Hamano - gitster- in 7050624 , 30 Jan 2020)

templates: แก้ไขตัวเลือกประเภทที่เลิกใช้แล้ว --bool

ลงชื่อออกโดย: Lucius Hu

--boolตัวเลือกที่จะgit-configถูกทำเครื่องหมายเป็นประวัติศาสตร์และผู้ใช้จะแนะนำให้ใช้--type=boolแทน
การกระทำนี้แทนที่ทุกสิ่งที่เกิดขึ้น--boolในแม่แบบ

นอกจากนี้ทราบว่าไม่มีตัวเลือกอื่น ๆ ประเภทที่เลิกใช้จะพบรวมทั้ง--int, --bool-or-int, หรือ--path--expiry-date


0

อ้างอิงที่นี่: https://nathanhoad.net/how-to-colours-in-git/

ขั้นตอน

  1. เปิด ~ / .gitconfig เพื่อแก้ไข

    vi ~ / .gitconfig

  2. วางรหัสต่อไปนี้:

    [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. บันทึกไฟล์

เพียงแค่เปลี่ยนไฟล์ใด ๆ ใน repo ท้องถิ่นของคุณและทำ

git status

มี # answer-29320572 เดิมโดย Victor แล้ว
วิจารณ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.