วิธีตรวจสอบประวัติโครงการด้วย Git Log

วิธีตรวจสอบประวัติโครงการด้วย Git Log

บริการพื้นฐานที่สุดอย่างหนึ่งของ 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 ไวยากรณ์ มีสามวิธีที่แตกต่างกันเล็กน้อยที่คุณสามารถใช้ได้:

  1. ดูการคอมมิตที่อยู่ใน main แต่ไม่ใช่สาขา: |_+_|
  2. ดูการคอมมิตที่อยู่ในสาขา แต่ไม่ใช่หลัก: |_+_|
  3. ดูการคอมมิตที่มีอยู่เฉพาะในสาขาหรือหลัก: |_+_|

ความแตกต่างระหว่างสองแท็ก

เช่นเดียวกับที่คุณสามารถดูประวัติระหว่างสาขาโดยใช้ 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 Jack(58 บทความเผยแพร่)

Bobby เป็นผู้ที่ชื่นชอบเทคโนโลยีซึ่งทำงานเป็นนักพัฒนาซอฟต์แวร์มาเกือบสองทศวรรษ เขาหลงใหลในการเล่นเกม ทำงานเป็นบรรณาธิการบทวิจารณ์ที่ Switch Player Magazine และหมกมุ่นอยู่กับทุกแง่มุมของการเผยแพร่ออนไลน์และการพัฒนาเว็บ

เพิ่มเติมจาก Bobby Jack

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก