จะใช้ Git Log เพื่อจัดรูปแบบประวัติการกระทำได้อย่างไร?



Git เป็นเครื่องมือที่ช่วยในการจัดระเบียบและจัดการซอร์สโค้ดของแอปพลิเคชันของคุณ เรียนรู้ทั้งหมดเกี่ยวกับคำสั่ง git log format history และวิธีการใช้งาน

ในบทความนี้เราจะพูดถึงตัวเลือกขั้นสูงในการจัดรูปแบบและพิมพ์บันทึกการคอมมิตเพื่อดึงข้อมูลที่คุณต้องการจากประวัติวารสารโครงการของคุณ เนื่องจากเรารู้แล้ว เก็บบันทึกการเปลี่ยนแปลงที่เกี่ยวข้องกับประวัติโครงการตอนนี้เราจะสำรวจวิธีอื่น ๆ ที่คำสั่ง 'git log' มีประโยชน์

ประการแรกฉันกำลังเปลี่ยนไปใช้ / ตรวจสอบสาขา 'feature1' สำหรับประวัติที่สะดวกและสั้นลง
ใช้คำสั่ง -





$ซีดี myProj- สลับไปที่โครงการคอมไพล์

$คุณลักษณะการชำระเงินคอมไพล์ 1- ข้ามไปที่สาขา 'feature1'



1. ยอมรับการจัดรูปแบบ

1.1 พริตตี้พิมพ์เนื้อหาผลลัพธ์ในรูปแบบที่กำหนด

ไวยากรณ์: บันทึก git - สวย [=]

ที่ไหน สามารถเป็นหนึ่งใน ออนไลน์, สั้น, ปานกลาง, เต็ม, ฟูลเลอร์, อีเมล์, ดิบและ รูปแบบ:
เมื่อไหร่ = ส่วนหนึ่งถูกละไว้ค่าเริ่มต้นคือ ปานกลาง.

1.1.1 –pretty = oneline

บันทึกการพิมพ์สวย ๆ ใน 'บรรทัดเดียว'
คำสั่ง: git log --pretty = oneline
จัดรูปแบบผลลัพธ์ตามลำดับ:




Commit - ประวัติรูปแบบบันทึก Git - Edureka

1.1.2 –pretty = สั้น

ฟอร์แมตคอมมิตเอาต์พุต 'สั้น' ในรูปแบบ:
คอมมิต (refname)
ผู้เขียน:



1.1.3 –pretty = ปานกลาง

คำสั่ง: git log --pretty = medium
พิมพ์คอมมิตเอาต์พุตในรูปแบบ 'medium':
กระทำ
ผู้เขียน :
วันที่:


1.1.4 –pretty = เต็ม

คำสั่ง: บันทึก git --pretty = เต็ม
เอาต์พุตอยู่ในรูปแบบ:
คอมมิต (refname)
ผู้เขียน:
กระทำ:


1.1.5 –pretty = ฟูลเลอร์

คำสั่ง: git log --pretty = fuller
คอมมิต (refname)
ผู้เขียน:
วันที่ :
กระทำ:
CommitDate:


1.1.6 –pretty = อีเมล

คำสั่ง: บันทึก git --pretty = อีเมล
พิมพ์เอาต์พุตบันทึกในรูปแบบอีเมล:
จาก
จาก:
วันที่:
เรื่อง: [ปะ]


1.1.7 –pretty = ดิบ

คำสั่ง: git log --pretty = raw
รูปแบบเอาต์พุตบันทึกข้อมูลดิบจะแสดงการกระทำทั้งหมดตรงตามที่เก็บไว้ในอ็อบเจ็กต์คอมมิต
กระทำ
ต้นไม้
ผู้ปกครอง
ผู้เขียน
กระทำ

1.1.8 - รูปแบบ:: การจัดรูปแบบที่กำหนดเอง

รูปแบบช่วยให้คุณสามารถระบุข้อมูลของอ็อบเจ็กต์คอมมิตที่คุณต้องการพิมพ์ในบันทึกเอาต์พุตคอมมิต
ให้เราพิจารณาตัวยึดตำแหน่งต่างๆที่ตัวเลือกนี้มีให้เช่นเดียวกับฟังก์ชัน 'C printf' ด้วยความช่วยเหลือของข้อมูลโค้ด:

คำสั่ง: git log --pretty = format: '% h% ad | % s% d [% an] '- วันที่ = สั้น
รูปแบบผลลัพธ์:
| [ชื่อผู้แต่ง]

% h = รหัส hash-id / sha1commit ที่สั้นลง
% ซ = รหัส sha-1 ยาว
%ถึง = วันที่เขียน
% s = ยอมรับบรรทัดหัวเรื่อง
% d = ตัวชี้อ้างอิง (สาขา, แท็ก) ชื่อ
% ก = ชื่อผู้แต่ง
- วันที่ = short: พิมพ์เฉพาะวันที่และไม่ใช่เวลาในรูปแบบที่อ่านได้

ตอนนี้วิธีการทำให้ผลลัพธ์นี้เป็นมิตรกับมนุษย์มากขึ้นโดยใช้สี
คำสั่ง:
git log --pretty = format: '% C (yellow)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short


ตัวยึดตำแหน่งอื่น ๆ ที่ใช้ในข้อมูลโค้ดด้านบน ได้แก่ :
% C (สีเหลือง) : เปลี่ยนสตริงต่อไปนี้เป็นสีเหลือง
% Creset : รีเซ็ตสตริงต่อไปนี้กลับเป็นสีเริ่มต้น (สีขาว)
% Cgreen : เปลี่ยนสตริงต่อไปนี้เป็นสีเขียว
%ฉันคิดว่า: เปลี่ยนสตริงต่อไปนี้เป็นสีแดง
% Cblue: ทำให้ชื่อผู้แต่งเป็นสีฟ้า

คุณไม่จำเป็นต้องจำและเขียนคำสั่งทั้งหมดทุกครั้งเพียงใช้ชื่อย่อเป็น git นามแฝง ดังแสดงด้านล่าง:
คำสั่ง:
git config --global alias.c-hist 'log --pretty = format:'% C (yellow)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

“ c-hist” แสดงถึง ปรับแต่ง - ประวัติ โอรี
อย่างที่คุณสังเกตเห็นว่าฉันกำลังตั้งค่าระดับโลกของฉัน การกำหนดค่าคอมไพล์ ไฟล์ที่มีค่า

jit compiler ใน java คืออะไร

ตอนนี้ในการตรวจสอบประวัติของสาขาปัจจุบันสิ่งที่คุณต้องทำคือเรียกใช้คำสั่งดังนี้:
คำสั่ง: ไป c-hist

1.2 –abrief-commit: ย่อ git คอมมิต hash-id

คำสั่ง: บันทึกคอมไพล์ - ย่อ - คอมมิต
ชื่ออ็อบเจ็กต์คอมมิตเลขฐานสิบหกขนาด 40 ไบต์เต็มถูกย่อให้สั้นลงเหลือ 7 ไบต์ดีฟอลต์


ให้เราจับคู่กับ '- ออนไลน์'ตัวเลือกสำหรับมุมมองที่สะดวกเช่นนี้:
คำสั่ง: บันทึกคอมไพล์ - ย่อ - คอมมิต --oneline

สิ่งที่น่าตื่นเต้นกว่านั้นคือคุณสามารถระบุความยาวไบต์ของ sha-1 id ได้โดยใช้ตัวเลือก '–abopsis =' ดังที่แสดงด้านล่าง:
คำสั่ง: บันทึกคอมไพล์ - คำย่อ - คอมมิต --ab ย่อ = 5 --oneline



เห็นได้ชัดว่ารหัส sha-1 ที่ไฮไลต์จะลดลงเหลือขนาด 5 ไบต์

1.3 - ไม่ย่อ - กระทำ

แสดงชื่ออ็อบเจ็กต์คอมมิตเลขฐานสิบหกขนาด 40 ไบต์แบบเต็ม
สิ่งนี้ปฏิเสธ - ย่อ - กระทำ และตัวเลือกที่บ่งบอกถึง
เช่น“ –oneline”
คำสั่ง: git log --pretty = oneline - ไม่มีตัวย่อ - กระทำ



1.4 -relative-date

คำสั่ง: บันทึก git - วันที่ที่สัมพันธ์กัน

โปรดทราบว่าเวลาที่ไฮไลต์นี้อาจมีการเปลี่ยนแปลงโดยอ้างอิงถึงเวลาที่คุณดำเนินการคำสั่งในระบบของคุณ

1.5 –date =

คุณยังสามารถจัดรูปแบบวันที่บันทึกการคอมมิตในตัวเลือกรูปแบบต่อไปนี้:

1.5.1 –date = ญาติ

คำสั่ง :บันทึก git - วันที่ = ญาติ
คำนี้ตรงกันกับคำสั่งด้านบน“บันทึก git - วันที่ที่สัมพันธ์กัน” และพิมพ์คอมมิตเดียวกัน

1.5.2 –date = local

คำสั่ง : บันทึก git --date = local

1.5.3 –date = iso

คำสั่ง: บันทึก git --date = iso

1.5.4 –date = iso-เข้มงวด

คำสั่ง: git log --date = iso- ที่เข้มงวด

1.5.5 –date = rfc

คำสั่ง: บันทึก git --date = rfc

1.5.6 - วันที่ = สั้น

คำสั่ง: git log --date = short

1.5.7 –date = raw (แสดงวันที่เป็นวินาที)

คำสั่ง: บันทึก git --date = raw
พิมพ์เวลาเป็นวินาทีตั้งแต่ไฟล์ unix epoc เวลา (01 ม.ค. 1970) ตามด้วยเขตเวลา

1.5.8 –date = มนุษย์

คำสั่ง: บันทึกคอมไพล์ - วันที่ = มนุษย์

1.5.9 –date = unix

แสดงวันที่เป็น unix epoc (UTC) เวลา
คำสั่ง: git log --date = unix

1.6 - พ่อแม่

พิมพ์พาเรนต์ของแต่ละคอมมิตในรูปแบบด้วย:
คำสั่ง: บันทึก git --parents
คำสั่งเอาต์พุต Oneliner: บันทึก git --parents --oneline

จุดที่ควรสังเกต:
C366419 เป็นการรวมคอมมิตจึงมีผู้ปกครอง 2 คนตามลำดับ: ค่าธรรมเนียม และ 4920adc
ในทำนองเดียวกัน

1d67b50 เป็นการรวมคอมมิตซึ่งเป็นผลมาจากการรวม f2ff2e4 และ abb694b
078f9f5 เป็นการรวมคอมมิตที่สร้างขึ้นโดยการรวม 9a2412e และ ab3a5e5
ในขณะที่ 86792c6 เป็นการกระทำเริ่มต้นจึงไม่มีผู้ปกครอง

1.7 - เด็ก

พิมพ์เด็กในแบบฟอร์มด้วย
คำสั่ง: บันทึก git - เด็ก - ออนไลน์

บันทึก :
006b9ce เป็นการคอมมิตล่าสุดดังนั้นจึงยังไม่มีลูก ๆ ที่กระทำการใด ๆ การเปลี่ยนแปลงครั้งต่อไปที่คุณทำและยอมรับในสาขานี้จะเป็นอ็อบเจ็กต์การกระทำลูกของ sha-1 id ล่าสุดนี้

1.8 - กราฟ

วาดการแสดงกราฟิกตามข้อความของประวัติการกระทำก่อนรหัส sha-1
คำสั่ง: บันทึกคอมไพล์ - กราฟ
ปรับปรุงเอาต์พุต oneliner: git log --graph --oneline


สิ่งนี้ช่วยให้คุณเข้าใจว่าเมื่อใดอย่างไรและทำไมและสาขาอื่น ๆ รวมเข้ากับสาขาที่เช็คเอาต์ในปัจจุบัน

1.9 –show-linear-break

คำสั่ง: บันทึก git - แสดง - เชิงเส้นแบ่ง
นี่เป็นคำสั่งที่มีประโยชน์เพื่อระบุเส้นกั้นระหว่างการคอมมิต 2 ครั้งติดต่อกันที่ไม่ได้เป็นของสาขาเชิงเส้นหรืออีกนัยหนึ่งคือการกระทำที่มาจากกิ่งก้านที่แตกต่างกัน


เปรียบเทียบเอาต์พุตด้านบนกับเอาต์พุตคำสั่ง 'git log –graph' ที่แสดงให้เห็นอย่างชัดเจนว่าคอมมิต 'linear-break' ถูกรวมเข้าด้วยกันอย่างไร

โบนัส: สรุปเอาต์พุตบันทึก git: 'git shortlog'

ส่วน ‘คอมไพล์ shortlogคำสั่ง ‘จัดหมวดหมู่ผู้เขียนบันทึกการกระทำที่ชาญฉลาดและพิมพ์สรุปภาพรวมโดยระบุการกระทำของผู้เขียนแต่ละคน
คำสั่ง: git เข้าสู่ระบบ shortlog

คำสั่ง : git log shortlog -s
-s ย่อมาจาก –summary ระงับคำอธิบายการกระทำและพิมพ์จำนวนคอมมิตโดยผู้เขียนแต่ละคนดังนี้:

นอกจากนี้คุณยังสามารถจัดรูปแบบผลลัพธ์โดยใช้ตัวยึดตำแหน่งเดียวกับที่กล่าวถึงใน '--pretty = รูปแบบ‘ตัวเลือก
ลองใช้คำสั่ง: git shortlog --format = '% h | % s '

ดังนั้นคุณจะเห็นด้วยว่าผลลัพธ์นี้มีความหมายมากขึ้นเนื่องจากแสดงรหัสและสำหรับผู้เขียนแต่ละคนพร้อมกับจำนวนคอมมิตทั้งหมด

บันทึก : เป็นเรื่องน่าสนใจที่จะทราบว่าคุณสามารถค้นหาสาขาที่ทำคอมมิตเฉพาะได้อย่างง่ายดาย เป็นสิ่งที่ควรค่าแก่การอภิปรายในบทความที่กำลังจะมาถึงในเชิงลึก

ด้วยเหตุนี้เราจึงมาถึงจุดจบของสิ่งนี้ประวัติรูปแบบบันทึก Gitบล็อกฉันหวังว่าคุณจะพบว่าข้อมูลนี้

ในโพสต์นี้เราได้เรียนรู้เทคนิคการจัดรูปแบบที่พิมพ์ข้อมูลโครงการด้วยวิธีที่กำหนดเองและใช้งานง่ายขึ้น ตอนนี้คุณควรรู้วิธีใช้พารามิเตอร์ของคำสั่ง 'git log' อย่างมีประสิทธิภาพเพื่อดึงข้อมูลที่คุณต้องการเกี่ยวกับซอร์สโค้ดออกจากประวัติคอมมิตของคุณ ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้ฉันหวังว่าคุณจะพบว่ามันเป็นประโยชน์

หากคุณต้องการเรียนรู้เพิ่มเติมคุณสามารถตรวจสอบสิ่งนี้ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka DevOps Certification ช่วยให้ผู้เรียนเข้าใจว่า DevOps คืออะไรและได้รับความเชี่ยวชาญในกระบวนการและเครื่องมือต่างๆของ DevOps เช่น Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack และ GIT สำหรับการทำหลายขั้นตอนใน SDLC โดยอัตโนมัติ

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทความนี้เกี่ยวกับ 'ประวัติรูปแบบบันทึก Git' แล้วเราจะติดต่อกลับไป