git log --decorateจะใส่โดยค่าเริ่มต้น:
- HEAD เป็นสีฟ้า
- กิ่งก้านที่ห่างไกลเป็นสีแดง
- แท็กเป็นสีเขียว
และสามารถเปลี่ยนแปลงได้ผ่าน color.decorateconfig
แต่git log --formatไม่ได้เสนอวิธีการแสดงเฉพาะHEAD หรือรีโมทหรือสาขา: ทั้งสามจะแสดงผ่านโดย%dมีสีเดียวที่เป็นไปได้
อัปเดตเมื่อเดือนพฤษภาคม 2013 ตามที่ระบุไว้ด้านล่างโดยElad Shahar (โหวตเพิ่ม) git 1.8.3 มีอีกหนึ่งทางเลือก:
git log –formatตอนนี้มี%C(auto)โทเค็นที่บอกให้ Git ใช้สีเมื่อแก้ไข%d(ตกแต่ง) %h(ชื่อวัตถุคอมมิตสั้น ๆ ) ฯลฯ สำหรับเอาต์พุตเทอร์มินัล
โพสต์บล็อก Atlassianนี้แสดงความคิดเห็นว่าคุณลักษณะนี้เป็นส่วนหนึ่งของคุณลักษณะอื่น ๆ ที่เน้นรูปแบบ ( 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โดยJunio C Hamano ( 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 C Hamano ( gitster) , 13 พฤษภาคม 2015
(ผสานโดยJunio C 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)
Git 2.10.2 (ตุลาคม 2016) การแก้ไขข้อบกพร่องอื่น ๆ ที่มีการกระทำ 82b83da (29 กันยายน 2016) และกระทำ c99ad27 (17 กันยายน 2016) โดยRené Scharfe ( ``)
(รวมโดยJunio C Hamano - gitster-ในการกระทำ 76796d4 , 28 ตุลาคม 2016)
pretty: หลีกเลี่ยงการเพิ่มการรีเซ็ต%C(auto)หากเอาต์พุตว่างเปล่า
เราปล่อยลำดับการหลบหนีสำหรับการรีเซ็ตสีและแอตทริบิวต์%C(auto)เพื่อให้แน่ใจว่าการแสดงสีอัตโนมัติตามที่ต้องการ
หยุดทำเช่นนั้นหาก strbuf เอาต์พุตว่างกล่าวคือเมื่อ%C(auto)ปรากฏขึ้นที่จุดเริ่มต้นของสตริงรูปแบบเพราะไม่จำเป็นต้องรีเซ็ตและเราบันทึกสองสามไบต์ในเอาต์พุต
pretty: ให้%C(auto)รีเซ็ตแอตทริบิวต์ทั้งหมด
รีเซ็ตสีและคุณลักษณะเมื่อ%C(auto)เปิดใช้งานการควบคุมอัตโนมัติเต็มรูปแบบ มิฉะนั้นคุณลักษณะเช่นตัวหนาหรือย้อนกลับอาจจะยังคงมีผลตั้งแต่ก่อนหน้านี้%Cตัวยึด