วิธีอ่านกราฟบันทึกคอมไพล์


95

ในหนังสือชุมชนคอมไพล์กล่าวว่า

สิ่งที่น่าสนใจอีกอย่างที่คุณสามารถทำได้คือแสดงภาพกราฟการกระทำด้วยตัวเลือก '--graph' ดังนี้:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

มันจะให้การแสดง ASCII ที่ดีงามของบรรทัดประวัติการกระทำ

ฉันควรอ่านกราฟนี้อย่างไร? วิธีการที่ไม่420eac9แตกต่างจากส่วนที่เหลือ?

คำตอบ:


118

เครื่องหมายดอกจันแสดงให้เห็นว่ามีบางสิ่งเกิดขึ้นที่ใด:

e1193f8, 5a09431และ30e367cมีความมุ่งมั่นที่จะสาขาซ้าย (ผลผลิต|ในสาขาทางด้านขวา) ในขณะที่420eac9มีความมุ่งมั่นไปยังสาขาที่เหมาะสม (ผลผลิต|ในสาขาทางด้านซ้าย) และนั่นคือสิ่งที่420eac9แตกต่างจากส่วนที่เหลือ: เป็นการกระทำต่อสาขาที่ถูกต้องเท่านั้น

เพื่อความสมบูรณ์:

  • d6016bc เป็นจุดแตกแขนง
  • 5e3ee11 คือการรวมคอมมิต
  • 2d3acf9 เป็นการกระทำครั้งแรกหลังจากการรวม

4
ฉันมีคำถามเกี่ยวกับเวลาคอมมิตดังที่แสดงในกราฟ ในกราฟ '420eac9' จะแสดงด้านบน '30e367c', '5a09431' และ 'e1193f8' นั่นจะหมายความว่า '420eac9' ถูกผูกมัดตามหลังอีกสามคนเสมอหรือว่าการกระทำในสาขาถูกจัดกลุ่มเข้าด้วยกันและลำดับที่ปรากฏข้ามสาขาไม่มีความสัมพันธ์ของเวลา?
Parag

4
@Parag: คอมมิตในสาขาจะถูกจัดกลุ่มเข้าด้วยกัน 420eac9เสร็จสิ้นหลังจากการกระทำครั้งแรกของe1193f8สาขา แต่ไม่จำเป็นหลังจากนั้น30e367c
เช่น

1
@eckes |สัญลักษณ์ทางซ้าย (ทางซ้ายสุด) เป็นตัวแทนของสาขาที่ฉันกำลังอยู่ในขณะนี้หรือไม่?
J86

@ J86 ถ้าคุณเปลี่ยนไปใช้สาขาอื่นและเรียกใช้คำสั่งเดียวกันคุณจะได้รับผลลัพธ์เดียวกันดังนั้นจึงไม่มีการอ้างอิงในกราฟไปยังสาขาปัจจุบันที่คุณอยู่
onofricamila

19

420eac9อยู่คนละสาขาที่ไม่ใช่ 3 ข้อตกลง "ด้านล่าง" สาขาแยกหลังและพวกเขาก็รวมอยู่ในd6016bc5e3ee11


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