सुंदर प्रारूप रंग


81

मैं Git के लिए सुंदर प्रारूप रंग सेट करने का प्रयास कर रहा हूं। क्या मैं संस्करण 1.6.0 बता सकता हूँ से केवल लाल, हरे और नीले रंग को पहचानता है।

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

इसके अलावा कोई भी रंग कोष्ठक रंग प्रारूप के साथ काम नहीं करता है।

क्या Git के लिए उपलब्ध सुंदर प्रारूप रंगों को सूचीबद्ध करने का कोई तरीका है?

दुर्भाग्य से यह एक विरासत एससीओ ओपनसेवर 5.0.7 मशीन पर है और एससीओ स्कंकवर्क्स द्वारा जारी गिट का अंतिम संस्करण 1.6.0.3 था।


1
यदि आपका प्लेटफ़ॉर्म अप्रचलित है, तो आप git-scm.com से नवीनतम git 1.8.x को क्यों डाउनलोड नहीं करते हैं और इसे स्वयं संकलित करते हैं? तब यह सभी सबसे हाल की सुविधाओं का समर्थन करेगा।
एम.वी.पी.

@ एमवीपी खैर, जैसा कि आपने कहा, प्लेटफ़ॉर्म अप्रचलित है - जिसका अर्थ है एक GNU बिल्ड पर्यावरण की कमी। मैं लिनक्स में माइग्रेशन के लिए मौजूदा एप्लिकेशन सोर्स कोड तैयार कर रहा हूं।
जेम्स ऑलमैन

ध्यान दें कि जीआईटी 2.3.0 (फरवरी 2015) 24-बिट्स रंग मूल्यों के लिए अनुमति देगा, और रंग विशेषताओं का एक बेहतर प्रबंधन (बोल्ड, रेखांकित, ...)। देखें नीचे मेरा उत्तर
VonC

Git 2.26 (Q1 2020) चमकीले ऐक्सटरम रंगों का समर्थन करने के लिए विशेषता "उज्ज्वल" जोड़ देगा। देखें नीचे मेरी संपादित जवाब
VonC

जवाबों:


144

मेरे पास यह gitसत्यापित करने के लिए पुराना संस्करण नहीं है कि रंगों के अलावा अन्य हैं red, blueऔर greenसमर्थित हैं।

हालाँकि, हाल ही के संस्करणों git(जैसे कि 1.7.10 मैंने इस्तेमाल किया) के साथ एक चीज पर ध्यान दिया, वह यह है कि इसके अलावा अन्य रंग red, greenऔर माता-पिता के blueभीतर होना चाहिए ()। के लिए red, greenऔर blue, कोष्ठक वैकल्पिक हैं।

तो यह एक कोशिश दे:

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

जिन रंगों की मुझे जानकारी है, वे कम से कम हैं:

normal
black
red
green
yellow
blue
magenta
cyan
white

इसे इनमें से किसी एक विशेषता के साथ जोड़ा जा सकता है:

bold
dim
ul
blink
reverse
italic
strike
bright  # (Git 2.26, Q1 2020, example: brightred)

यदि आप रंगों को बदलने की कोशिश कर रहे हैं, तो आपको .gitconfigदो रंगों - अग्रभूमि और पृष्ठभूमि को निर्दिष्ट करने में सक्षम होना चाहिए और आप इसे एक विशेषता के साथ जोड़ सकते हैं।


मेरा मानना ​​है कि आप सही हैं कि केवल प्राथमिक रंगों का समर्थन किया जाता है। कोष्ठक रूप रंग इस संस्करण (1.6.0.3) में बिल्कुल भी काम नहीं करता है।
जेम्स ऑलमैन

16
अंतरिक्ष अलग अग्रभूमि, पृष्ठभूमि और इस% C (लाल हरे रंग की बोल्ड) जैसी विशेषताएँ
HexInteractive

कम से कम दो अन्य विशेषताएँ हैं: इटैलिक और स्ट्राइक जैसा कि मैनुअल में लिखा गया है git-scm.com/docs/git-config और पूर्णता कारणों के लिए।
onemorequestion

1
@onemorequestion कोई समस्या नहीं है। मैंने उसी के अनुसार उत्तर संपादित किया है। मुझे वास्तव में आपके अन्य उत्तर पसंद हैं ( वैसे stackoverflow.com/a/61487052/6309 )।
VonC

40

Git 2.3.0 (फरवरी 2015) अनुमति देगा ( जेफ किंकpeff को धन्यवाद ) ( ):


parse_color: 24-बिट RGB मानों का समर्थन करें

कुछ टर्मिनल (जैसे एक्सटर्म) नियमित एएनएसआई रंग योजना के विस्तार के उपयोग से पूर्ण 24-बिट आरजीबी रंग विनिर्देशों की अनुमति देते हैं।
चलो उपयोगकर्ताओं को हेक्स आरजीबी रंगों को निर्दिष्ट करने की अनुमति देते हैं, जो गर्म गुलाबी रेफ सजावट की सभी महत्वपूर्ण विशेषता को सक्षम करते हैं :

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • रंग विशेषताओं का एक बेहतर प्रबंधन:

parse_color: विशेषता no$fooको साफ़ करने के लिए " " पहचानें$foo

आप अपने रंग कल्पना में "रिवर्स" डालकर "रिवर्स" जैसे एएनएसआई पाठ विशेषताओं को चालू कर सकते हैं। हालाँकि, आप रिवर्स को बंद करने के लिए नहीं कह सकते।

सामान्य मामलों के लिए, यह कोई फर्क नहीं पड़ता। आप रंगीन अनुभाग की शुरुआत में "रिवर्स" चालू करेंगे, और फिर "रीसेट" के साथ सभी विशेषताओं को साफ़ करें।

हालाँकि, आप कुछ विशेषताओं को चालू करना चाह सकते हैं, फिर दूसरों को चुनिंदा रूप से अक्षम कर सकते हैं। उदाहरण के लिए:

git log --format="%C(bold ul yellow)%h%C(noul) %s"

केवल हैश को रेखांकित करता है, लेकिन बाकी विशेषताओं को फिर से निर्दिष्ट करने की आवश्यकता के बिना।

यह तीसरे पक्ष के कार्यक्रमों को भी मदद कर सकता है, जैसे contrib/diff-highlight, कि मौजूदा रंग को बाधित किए बिना कुछ विशेषता चालू / बंद करना चाहते हैं।

ध्यान दें कि कुछ विशेषता विनिर्देश संभवतः निरर्थक हैं (उदाहरण के लिए, " bold nobold")। हम ऐसे निर्माणों को चिह्नित करने के लिए परेशान नहीं करते हैं, और इसके बजाय टर्मिनल को इसे छाँटने देते हैं।


Git 2.26 (Q1 2020) के साथ, मूल 7 रंगों ने उज्जवल समकक्षों (जैसे " brightred") को सीखा

देखें c444f03 प्रतिबद्ध , 1751b09 प्रतिबद्ध , प्रतिबद्ध 4a28eb0 से (21 जनवरी 2020) ईयाल सोहा ( ``)
( जूनियो सी gitsterहमानो द्वारा विलय - - में 87f17d7 , 25 फरवरी 2020)

color.c: उज्ज्वल ऐक्स्टेरम रंगों का समर्थन करते हैं

साइन-ऑफ-बाय: ईयाल सोहा

ये रंग 3-बिट रंगों के उज्ज्वल संस्करण हैं।

अग्रभूमि के लिए 30-37 रेंज और पृष्ठभूमि के लिए 40-47 रेंज के बजाय, वे क्रमशः 90-97 और 100-107 रेंज में रहते हैं।

git configप्रलेखन अब में शामिल हैं:

स्वीकार किए जाते हैं बुनियादी रंग हैं normal, black, red, green, yellow, blue, magenta, cyanऔर white
दिया गया पहला रंग अग्रभूमि है; दूसरी पृष्ठभूमि है।

सिवाय सभी मूल रंगों के normalएक उज्ज्वल संस्करण है जिसे रंग के साथ उपसर्ग द्वारा निर्दिष्ट किया जा सकता है bright, जैसे brightred


यह भी देखें stackoverflow.com/a/12798205/6309 : git 2.9.1 दो नई विशेषताओं का समर्थन करता है: इटैलिक और स्ट्राइक।
VonC

2
क्या आप जानते हैं कि git उर्फ ​​के अंदर RGB रंगों को कैसे शामिल किया जाता है? #ff69b4कमांड लाइन पर काम करता है, लेकिन एक उपनाम में नहीं, क्योंकि #एक टिप्पणी शुरू होती है
टिम मैलोन

@TimMalone मैं इसे अभी तक परीक्षण नहीं किया, लेकिन config आदमी पेज कहते हैं, "अग्रणी व्हाइटस्पेस नाम के बाद =, पहली टिप्पणी चरित्र के बाद लाइन के शेष #या ;, और रेखा के पीछे चल व्हाइटस्पेस निकाल दिया जाता है जब तक कि वे दोहरे उद्धरण चिह्नों में बंद होते हैं । "
VonC

1
@TimMalone पूरे उर्फ "-क्वाट्स में डालें और फिर #विशेष नहीं होगा।
टॉम हेल

@VonC, मुझे अजीब अक्षर मिलते हैं जब मैं उन git logकमांड आउटपुट को टेक्स्ट या क्लिप पर पाइप करता हूं । ऐसा तब दिखता है जब रंगों और विशेषताओं का उपयोग किया जाता है --format। किसी भी विचार क्यों या इसके लिए तय?
hppyy

7

मेरा git लॉग प्रारूप साझा करें:

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

आप ~ / .gitconfig में एक उपनाम भी जोड़ सकते हैं :

[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

फिर आप उर्फ ​​का उपयोग कर सकते हैं जैसा कि आप में परिभाषित करते हैं ~/.gitconfig

$ git logs

7
सवाल पूछ रहा है कि गिट के सुंदर प्रारूप के रंगों का पता कैसे लगाया जाए।
रापनर

4

मैं Ubuntu 18.04 का उपयोग कर रहा हूं और मैं Xiaofei HAN के सुझावों का उपयोग करने में सक्षम था।

इसे पूरा करने की कोशिश करने वाले शुरुआती लोगों के लिए, .itconfig का संपादन करके मुझे शुभकामनाएं मिलीं।

nano ~/.gitconfig

पेस्ट [उपनाम] मौजूदा पाठ के तहत ऊपर से ब्लॉक करें

CTRL + O (लिखने के लिए) + CTRL + X (नैनो को बंद करने के लिए)

ऐसा करने के बाद, सुंदर रंगों को देखने के लिए आप उपयोग कर सकते हैं

git logs

का उपयोग करते हुए

'गिट लॉग' आपको रंगों के बिना देखने को मिलेगा,

'गेट लॉग्स --ऑनलाइन' के लिए भी यही है, सिवाय इसके कि एक तरफ से उत्कर्ष दिखाई देगा

धन्यवाद, मुझे आशा है कि यह किसी की मदद करता है


4

यहाँ दो उपनाम हैं जो मैंने एक बार लिखे थे जब मैंने कस्टम हेक्साडेसिमल रंग मानों के उपयोग के वाक्यविन्यास को समझा था जैसा कि @VonC के उत्तर में दिखाया गया है।

चार संस्करण हैं, एकमात्र अंतर है-graph निर्देश और 'f' संस्करण आपको वे फाइलें भी दिखाएगा जो जोड़े गए, हटाए गए या संशोधित किए गए हैं:

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

मैं इस साइट का उपयोग उन सटीक रंगों को लेने के लिए करता हूँ जिन्हें मैं चाहता था और फिर उससे हेक्स मान की प्रतिलिपि बनाई:

https://www.colorhexa.com/

विंडोज के लिए, अपने .itconfig फ़ाइल को खोलें जो आपके "C: \ Users \ YourUserName" फ़ोल्डर में रहती है और ऊपर दर्शाए अनुसार एक उपनाम अनुभाग जोड़ें।

आशा हैं आपको वह पसंद आये।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.