บริการพื้นฐานที่สุดอย่างหนึ่งของ Git คือประวัติโครงการ เนื่องจาก Git ติดตามการเปลี่ยนแปลงทั้งหมดของไฟล์ที่เกิดขึ้นภายในที่เก็บ มันจึงสามารถนำเสนอคุณลักษณะการบันทึกที่ทรงพลังมาก คุณสามารถสืบค้นประวัติของโครงการได้หลายวิธี และคุณสามารถแยกและแสดงข้อมูลต่างๆ ได้โดยใช้คำสั่งที่ยืดหยุ่นเพียงคำสั่งเดียว
NS git log คำสั่งมีขนาดใหญ่ที่สุด ใหญ่ที่สุดของคำสั่ง Git ปกติใดๆ คู่มือมีความยาวมากกว่า 2,500 บรรทัด โชคดี, git log มีพฤติกรรมที่เป็นประโยชน์มากที่สุดจากตัวเลือกหลักเพียงไม่กี่ตัว
การบันทึกพื้นฐานด้วยพฤติกรรมเริ่มต้น
โดยค่าเริ่มต้น, git log แสดงรายการการคอมมิตตามลำดับเวลาย้อนกลับ การคอมมิตแต่ละครั้งประกอบด้วยข้อความแฮช ผู้แต่ง วันที่ และข้อความคอมมิต:
คำสั่งนี้ใช้เพจเจอร์ (เช่น น้อยกว่า มากกว่า) เพื่อแสดงผลลัพธ์ทั้งหมด เพื่อให้คุณสามารถนำทางไปยังผลลัพธ์ได้อย่างง่ายดาย คุณสามารถกำหนดค่า Git เพื่อใช้โปรแกรมที่คุณต้องการได้ เช่น เพจเจอร์ส่วนใหญ่
นี่คือผลลัพธ์บันทึก git จาก ที่เก็บซอร์สโค้ด git ตัวเอง:
commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano
ผลลัพธ์เริ่มต้นด้วยแฮชคอมมิชชัน ( 670 ...) ตามด้วยรายชื่อสาขาที่ชี้ไปที่การกระทำนั้น ( HEAD -> มาสเตอร์ เป็นต้น)
ภาพยนตร์ฟรีที่ฉันดูบนโทรศัพท์ของฉันได้
บรรทัดถัดไปจะอธิบายผู้เขียนคอมมิตนี้ โดยระบุชื่อและที่อยู่อีเมล
วันที่และเวลาเต็มของการคอมมิตจะตามมาในบรรทัดถัดไป
สุดท้าย เนื้อหาทั้งหมดของข้อความยืนยันจะปรากฏขึ้น คุณสามารถควบคุมสิ่งอื่นเกือบทั้งหมดที่บันทึก git นำเสนอด้วยตัวเลือกบรรทัดคำสั่ง มีตัวเลือกสองประเภทหลัก:
- การจัดรูปแบบ ซึ่งกำหนดวิธีที่ Git แสดงการคอมมิตแต่ละครั้ง
- การกรองซึ่งกำหนดการกระทำที่ git log รวมถึง.
นอกจากตัวเลือกบรรทัดคำสั่งแล้ว git log ยังยอมรับอาร์กิวเมนต์ที่ระบุไฟล์ คอมมิต สาขา หรือการอ้างอิงประเภทอื่นๆ สิ่งเหล่านี้ใช้การกรองเพิ่มเติม
การจัดรูปแบบเอาต์พุตบันทึก Git
การปรับที่ง่ายที่สุดอย่างหนึ่งคือ --oneline ตัวเลือกที่สร้างผลลัพธ์ที่สั้นมาก:
git log --oneline
ตอนนี้แต่ละบรรทัดในบันทึกมีเพียงแฮชคอมมิทแบบย่อและหัวเรื่องของข้อความคอมมิท นี่เป็นวิธีที่ยอดเยี่ยมในการดูภาพรวมของการคอมมิตล่าสุดกับโปรเจ็กต์:
น่าเสียดายที่ไม่มีบริบทอื่น ข้อมูลนี้ไม่ได้มีประโยชน์เสมอไป อาจทำให้คุณรู้สึกคลุมเครือสำหรับโครงการ แต่ไม่มีวันที่และข้อมูลที่เป็นประโยชน์อื่น ๆ เกี่ยวกับผู้เขียนและไฟล์
การดูกราฟสาขา
NS --กราฟ ตัวเลือกช่วยให้คุณเห็นภาพความสัมพันธ์ระหว่างสาขา เป็นพื้นฐานมาก แต่สามารถช่วยคลี่คลายประวัติศาสตร์ที่ซับซ้อนได้
git log --oneline --graph
ที่เกี่ยวข้อง: วิธีสร้างสาขาใหม่ใน Git
ปรับแต่งเอาท์พุตที่สวยงาม
คุณสามารถบรรลุการจัดรูปแบบที่ซับซ้อนมากขึ้นโดยการระบุรายละเอียดโดยใช้ --สวย ตัวเลือก. วากยสัมพันธ์เปลี่ยนจากง่ายไปเป็นซับซ้อนมากขึ้น ดังนั้น ปรึกษาคู่มือสำหรับรายละเอียดทั้งหมด .
raspberry pi run คำสั่งในการบูต
git log --pretty=short
โดยพื้นฐานแล้วเหมือนกับ git log โดยไม่มีวันที่หรือข้อความเต็ม:
git log --pretty=oneline
เทียบเท่ากับ บันทึก git --oneline .
git log --pretty=fuller
รวมรายละเอียดมากมาย มันยังแยกผู้เขียนและผู้มอบอำนาจซึ่งในทางทฤษฎีแล้วอาจเป็นคนที่แตกต่างกัน:
กับ รูปแบบ: คุณสามารถใส่สตริงที่มีเนื้อหาอะไรก็ได้ที่คุณต้องการ รวมถึงตัวยึดตำแหน่งที่ถูกแทนที่ด้วยข้อมูลต่างๆ ต่อไปนี้คือตัวอย่างตัวยึดตำแหน่ง:
- %ชม คอมมิชชันแฮช
- %ชม ตัวย่อคอมมิชชัน hash
- %ถึง วันที่เขียน
- %กับ วันที่เขียน, ญาติ
- %NS ส่งเรื่องข้อความ
- % NS คอมมิตเนื้อความ
- %NS แฮชพาเรนต์ตัวย่อ
คุณสามารถเพิ่มอักขระคงที่ลงในเอาต์พุตและปรับสีได้ ตัวอย่างนี้ยังแสดงรูปแบบวันที่:
git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short
โปรดทราบว่าวงเล็บล้อมรอบวันที่ ไม่ว่าคุณจะเลือกรูปแบบใด ถ้าคุณต้องการให้ผลลัพธ์มีประโยชน์ในไปป์ไลน์หรือสำหรับการประมวลผลข้อความรูปแบบอื่น คุณควรพิจารณาวิธีแบ่งเขตแต่ละส่วนของผลลัพธ์
แสดงส่วนต่างในบันทึก
รายละเอียดที่สำคัญเมื่อดูประวัติของที่เก็บคือส่วนต่าง สิ่งเหล่านี้แสดงถึงสิ่งที่เปลี่ยนแปลงจริงในโค้ด! สำหรับผู้เริ่มต้น คุณสามารถรับข้อมูลสรุปการเปลี่ยนแปลงควบคู่ไปกับการส่งแต่ละครั้งได้โดยใช้ --shortstat :
git log --shortstat
สิ่งนี้จะเพิ่มบรรทัดเช่น:
1 file changed, 48 insertions(+), 2 deletions(-)
ที่ด้านล่างของการคอมมิตแต่ละครั้ง คุณมักจะเห็นข้อมูลสรุปประเภทนี้ เช่น ในหน้าต่างๆ บน GitHub และเป็นวิธีที่มีประโยชน์ในการตัดสินขอบเขตของการกระทำเฉพาะอย่างรวดเร็ว สำหรับข้อมูลโดยละเอียดเพิ่มเติม คุณสามารถรวมเอาท์พุตตัวแก้ไขแบบเต็ม (ส่วนต่าง) โดยใช้ -NS ธง:
git log -p
การกรองเอาต์พุตบันทึก Git
ไม่ว่าคุณจะใช้รูปแบบใด คุณจะยังคงเห็นบันทึกที่สมบูรณ์ของคอมมิตทั้งหมดในสาขาปัจจุบัน แม้ว่า Git จะแบ่งออกเป็นหน้าต่างๆ แต่ก็ยังสามารถให้ผลลัพธ์ได้มาก ตัวเลือกต่อไปนี้ช่วยให้คุณปรับแต่งได้ว่าคอมมิตใดบ้างที่รวมบันทึก
จำกัดตามจำนวนเงิน
หากคุณต้องการตัดผลลัพธ์เพื่อแสดงการคอมมิตล่าสุด ให้ใช้ -[ตัวเลข] ไวยากรณ์:
git log -2
จำกัดตามวันที่
ในการจำกัดชุดของคอมมิตในช่วงวันที่ที่กำหนด ให้ใช้ --ตั้งแต่ ( --หลังจาก ) และ --จนกระทั่ง ( --ก่อน ) ตัวเลือก. แต่ละรายการใช้วันที่ในรูปแบบ ISO 8601 คุณสามารถใช้อย่างใดอย่างหนึ่ง --ตั้งแต่ หรือ --จนกระทั่ง ด้วยตัวเองหรือทั้งสองอย่างรวมกันเพื่อระบุช่วง ตัวเลือก --หลังจาก และ --ก่อน เป็นคำพ้องความหมาย
git log --since='2021-01-01' --until='2021-05-01'
การจำกัดโดย File
บันทึก Git สามารถมุ่งเน้นไปที่ไฟล์เฉพาะมากกว่าทุกไฟล์ในที่เก็บของคุณ วิธีนี้เป็นวิธีที่ดีเยี่ยมในการช่วยคุณค้นหาว่าไฟล์ใดไฟล์หนึ่งเปลี่ยนแปลงไปอย่างไรเมื่อเวลาผ่านไป เพียงเพิ่มชื่อไฟล์ต่อท้ายคำสั่ง git ของคุณ:
git log filename
คุณจะเห็นเฉพาะการกระทำที่ได้รับผลกระทบ ชื่อไฟล์ .
ความแตกต่างระหว่างสาขา
คุณอาจมีข้อกำหนดเฉพาะบางประการเมื่อดูบันทึกของสาขา ตัวอย่างเช่น แทนที่จะดูประวัติทั้งหมด คุณอาจต้องการดูว่ามีอะไรเปลี่ยนแปลงในสาขานั้นๆ บันทึก Git สามารถช่วยผ่านการ ref1..ref2 ไวยากรณ์ มีสามวิธีที่แตกต่างกันเล็กน้อยที่คุณสามารถใช้ได้:
- ดูการคอมมิตที่อยู่ใน main แต่ไม่ใช่สาขา: |_+_|
- ดูการคอมมิตที่อยู่ในสาขา แต่ไม่ใช่หลัก: |_+_|
- ดูการคอมมิตที่มีอยู่เฉพาะในสาขาหรือหลัก: |_+_|
ความแตกต่างระหว่างสองแท็ก
เช่นเดียวกับที่คุณสามารถดูประวัติระหว่างสาขาโดยใช้ ref1..ref2 คุณยังสามารถดูประวัติระหว่างแท็กได้ด้วยวิธีเดียวกัน ท้ายที่สุดแล้ว ทั้งแท็กและกิ่งก้านเป็นประเภทของข้อมูลอ้างอิง
git log --oneline origin/branch..origin/main
คำสั่งที่เกี่ยวข้อง
หากคุณกำลังเตรียมบันทึกประจำรุ่นสำหรับโครงการที่ใหญ่กว่า git shortlog ควรเป็นพอร์ตการโทรแรกของคุณ มันสร้างรายชื่อของผู้เขียนที่มีภาระผูกพันควบคู่ไปกับพวกเขา คุณสามารถส่งช่วงอ้างอิงเพื่อจำกัดประวัติในลักษณะเดียวกันกับบันทึก git:
git log --oneline origin/ main ..origin/ branch
NS คำสั่ง git show มีความหลากหลายมากกว่า git log . มันสามารถทำงานกับแท็กและวัตถุ git ประเภทอื่นนอกเหนือจากประวัติการคอมมิต มันแบ่งปันตัวเลือกมากมายกับ git log แต่คุณจะต้องใช้จริงๆ ก็ต่อเมื่อจำเป็นต้องเจาะลึกรายละเอียดระดับล่างเท่านั้น
ทบทวนอดีตด้วย Git Log
บันทึก Git เป็นคำสั่งที่ซับซ้อน แต่คุณสามารถใช้งานได้มากมายจากตัวเลือกพื้นฐานส่วนใหญ่ การเรียกดูประวัติของที่เก็บเป็นวิธีที่ยอดเยี่ยมในการทำความเข้าใจว่าการเปลี่ยนแปลงเกิดขึ้นบ่อยเพียงใดและผู้คนสร้างการเปลี่ยนแปลงจำนวนเท่าใด เมื่อคุณมีความเข้าใจที่ดีเกี่ยวกับประวัติของโครงการแล้ว คุณจะอยู่ในตำแหน่งที่ดีที่จะมีส่วนร่วมกับโครงการนี้ด้วยตัวของคุณเอง
วิธีตรวจสอบสเปคคอมด้วย cmdแบ่งปัน แบ่งปัน ทวีต อีเมล เข้าร่วม Social Coding Trend และมีส่วนร่วมใน GitHub Repositories
ต้องการออกกำลังกายกล้ามเนื้อการเข้ารหัสและช่วยโครงการโอเพ่นซอร์สหรือไม่? นี่คือวิธีการมีส่วนร่วมใน GitHub
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- GitHub
- เคล็ดลับการเข้ารหัส
Bobby เป็นผู้ที่ชื่นชอบเทคโนโลยีซึ่งทำงานเป็นนักพัฒนาซอฟต์แวร์มาเกือบสองทศวรรษ เขาหลงใหลในการเล่นเกม ทำงานเป็นบรรณาธิการบทวิจารณ์ที่ Switch Player Magazine และหมกมุ่นอยู่กับทุกแง่มุมของการเผยแพร่ออนไลน์และการพัฒนาเว็บ
เพิ่มเติมจาก Bobby Jackสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก