ฉันจะใช้สีแยกกันสำหรับชื่ออ้างอิงปัจจุบันท้องถิ่นและระยะไกลเมื่อใช้รูปแบบบันทึก git ที่กำหนดเองได้อย่างไร


16

ฉันมีรูปแบบบันทึกการคอมไพล์ที่กำหนดเองที่ฉันใช้ ผมได้ตั้งอยู่ในของฉันcolor.ui=true .gitconfigตัวอย่างเช่นรูปแบบง่าย ๆ นี้:

git log --pretty=format:"%h %d %s" --decorate

สิ่งนี้จะพิมพ์บางอย่างเช่น

52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message

HEAD, โลคัล, รีโมตจะถูกเอาต์พุตโดยไม่มีสีเทียบกับgit log --oneline --decorateที่จะปะทุ HEAD (ใน 'cyan สีเข้ม'), local (ใน 'bold green') และรีโมต (เป็น 'bold red') ด้วยสี ตอนนี้ฉันสามารถห่อ%dด้วยสิ่ง%Cred%d%Cresetที่จะทำให้ชื่อผู้อ้างอิงทั้งหมดเป็นสีแดง

ฉันจะรับชื่อผู้อ้างอิงปัจจุบันท้องถิ่นและระยะไกลเพื่อให้มีสีแยกกันเมื่อใช้รูปแบบที่กำหนดเองกับบันทึก git ได้อย่างไร


ฉันไม่คิดว่ามันเป็นไปได้: stackoverflow.com/questions/5889878/color-in-git-log/...
VonC

ตอบไม่ได้ดูในสแต็กล้น มันแย่มากแม้ว่า
Ben Doerr

@VonC บางทีคุณควรจะเพิ่มมันเป็นคำตอบ?
NN

@NN ฉันมี บนสแต็กล้น ประมาณหนึ่งในหมื่นคำถามบน Git
VonC

คำตอบ:


11

ตอนนี้คุณสามารถใช้%C(auto)เป็นของคอมไพล์ 1.8.3, ตามที่โพสต์บล็อกนี้ Atlassian ;

git log --format=format:'%h%C(auto)%d%C(reset) %s (%an, %ar)'

จะช่วยให้

ป้อนคำอธิบายรูปภาพที่นี่

- อีกครั้งความอนุเคราะห์ของVonC ใน "Color in git-log"ซึ่งโพสต์ใหม่ที่นี่เพื่อความสะดวกในการใช้งานของกูเกิ้ลขาเข้า


4

git log --decorateจะใส่โดยค่าเริ่มต้น:

  • หัวเป็นสีฟ้า
  • สาขาระยะไกลเป็นสีแดง
  • แท็กเป็นสีเขียว

และสามารถเปลี่ยนแปลงได้ผ่านการ color.decorateกำหนดค่า

แต่วิธีgit log --formatนี้ไม่มีวิธีการแสดงเฉพาะHEAD หรือรีโมทหรือสาขา: ทั้งสามจะแสดงผ่าน%dด้วยสีเดียวที่เป็นไปได้

- VonC บน "Color in git-log"

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