git log --decorate
डिफ़ॉल्ट रूप से रखा जाएगा:
- सियान में सिर
- सुदूर शाखाओं में लाल
- हरे रंग में टैग
और color.decorate
विन्यास के माध्यम से बदला जा सकता है ।
लेकिन git log --format
विशेष रूप से HEAD
या रीमोट या शाखा को प्रदर्शित करने का एक तरीका प्रदान नहीं करते हैं : तीनों के माध्यम से प्रदर्शित किया जाता है %d
, एक रंग संभव के साथ।
मई 2013 को अपडेट करें, जैसा कि एलाद शाहर (ऊपर लिखा हुआ ) द्वारा नीचे दिया गया है , git 1.8.3 एक और विकल्प प्रदान करता है:
git log –format
अब खेल एक %C(auto)
टोकन है जो बताता है कि टर्मिनल आउटपुट के लिए Git को हल करते समय रंग का उपयोग करना %d
(सजावट), %h
(शॉर्ट कम ऑब्जेक्ट ऑब्जेक्ट), आदि।
यह एटलसियन ब्लॉग पोस्ट टिप्पणी करता है कि यह सुविधा प्रारूप ( git rebase
, git count-objects
) और रंगों ( git branch -vv
) पर केंद्रित कई अन्य लोगों का हिस्सा है
यह auto,reset
1.8.2 के पिछले हिस्से के अलावा आता है , जो टर्मिनल 1 के लिए आउटपुट का उपयोग नहीं किए जाने पर स्वचालित रूप से रंगों को निष्क्रिय कर देता है
%C(auto,blue)Hello%C(auto,reset)
नोट: git 2.4+ (Q2 2015) शाखा नामों के आसपास रंग को रीसेट करने का बेहतर काम करेगा। जूनियो सी हमानो द्वारा प्रतिबद्ध 5ee8758
देखें ( ) :gitster
log --decorate
: अगले आइटम में "कमिट" रंग को लीक न करें
" git log --decorate
" में, आप इस तरह प्रतिबद्ध हैडर देखेंगे:
commit ... (HEAD, jc/decorate-leaky-separator-color)
जहां " commit ... (
" में color.diff.commit
, " HEAD
" में color.decorate.head
, " ,
" में color.diff.commit
, शाखा का नाम
color.decorate.branch
और फिर " )
" में बंद किया गया है color.diff.commit
।
यदि आप शरीर के पाठ के रूप में उसी रंग में HEAD और स्थानीय शाखा के नाम को चित्रित करना चाहते हैं (शायद इसलिए कि सियान और ग्रीन पठनीय होने के लिए एक काले-सफेद टर्मिनल पर बहुत फीके हैं), तो आप कहना नहीं चाहेंगे
[color "decorate"]
head = black
branch = black
क्योंकि आप सफेद-ऑन-ब्लैक टर्मिनल पर समान कॉन्फ़िगरेशन का पुन: उपयोग नहीं कर पाएंगे। आप भोली उम्मीद करेंगे
[color "decorate"]
head = normal
branch = normal
काम करने के लिए, लेकिन दुर्भाग्य से यह नहीं है।
यह स्ट्रिंग को पेंट करता है " HEAD
" और शाखा का नाम एक ही रंग में है जैसे कि सजावट तत्वों के बीच उद्घाटन कोष्ठक या अल्पविराम।
ऐसा इसलिए है क्योंकि कोड "प्रीफिक्स" को अपने रंग में प्रिंट करने के बाद रंग को रीसेट करना भूल जाता है।
ध्यान दें कि git 2.5 (Q2 2015) बग को ठीक करता है:
देखें 429ad20 प्रतिबद्ध द्वारा Junio सी Hamano ( gitster
) , 13 मई 2015
(द्वारा विलय Junio सी Hamano - gitster
- में प्रतिबद्ध fd70780 , 22 मई 2015)
log
: सजावट के नाम को जल्दी छोटा न करें
" log --decorate
" Git 2.4 में वृद्धि, जो वर्तमान शाखा के सिरे पर HEAD -> master
कमिटमेंट दिखाती है जैसे " ", --decorate = full के साथ काम नहीं किया।
Git 2.9.x + (Q3 2016) एक और बग और ठीक कर देंगे सम्मान color=auto
के लिए%C(auto)
2.10.2.2 (अक्टूबर 2016) Git 82b83da (29 Sep 2016) के साथ अन्य बग को ठीक करता है , और René Scharfe (``) द्वारा c99ad27 (17 सितंबर 2016) प्रतिबद्ध है । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 76796d4 , 28 अक्टू 2016)
gitster
pretty
: %C(auto)
यदि आउटपुट खाली है , तो रीसेट जोड़ने से बचें
हम रंग को रीसेट करने के लिए भागने के क्रम का उत्सर्जन करते हैं और %C(auto)
यह सुनिश्चित करने के लिए विशेषता स्वचालित रंग को प्रदर्शित किया जाता है।
यह करना बंद कर दें कि यदि आउटपुट स्ट्रोब खाली है , अर्थात जब %C(auto)
प्रारूप स्ट्रिंग की शुरुआत में दिखाई देता है, क्योंकि तब रीसेट की कोई आवश्यकता नहीं होती है और हम आउटपुट में कुछ बाइट्स बचाते हैं।
pretty
: %C(auto)
सभी विशेषताओं को रीसेट करने दें
उन पर पूर्ण स्वचालित नियंत्रण सक्षम करने के लिए रंगों और विशेषताओं को रीसेट %C(auto)
करें; अन्यथा बोल्ड या रिवर्स जैसी विशेषताएं अभी भी पिछले %C
प्लेसहोल्डर्स से प्रभावी हो सकती हैं ।