ตั้งแต่ผมต้องการสร้างภาพเหล่านี้ผมคิดว่ามันอาจจะมีมูลค่าการใช้พวกเขาในคำตอบอื่นแม้ว่ารายละเอียดของความแตกต่างระหว่าง..
(dot-dot) และ...
(จุดจุดจุด) เป็นหลักเช่นเดียวกับในคำตอบของ manojlds
โดยgit diff
ทั่วไปคำสั่ง¹จะแสดงความแตกต่างระหว่างสถานะของแผนภูมิระหว่างสองจุดในกราฟการกระทำ ..
และ...
สัญลักษณ์ในgit diff
มีความหมายต่อไปนี้:
กล่าวอีกนัยหนึ่งgit diff foo..bar
ก็เหมือนกับgit diff foo bar
; ทั้งสองจะแสดงให้คุณเห็นความแตกต่างระหว่างเคล็ดลับของทั้งสองสาขาและfoo
bar
บนมืออื่น ๆ ที่git diff foo...bar
จะแสดงให้คุณเห็นความแตกต่างระหว่าง "ฐานผสาน" bar
ของทั้งสองสาขาและเคล็ดลับของ "ฐานผสาน" มักจะกระทำครั้งสุดท้ายเหมือนกันระหว่างสองสาขาดังนั้นคำสั่งนี้จะแสดงการเปลี่ยนแปลงที่งานของคุณbar
ได้แนะนำขณะที่ไม่สนใจทุกสิ่งที่ทำfoo
ในเวลาเดียวกัน
นั่นคือทั้งหมดที่คุณจำเป็นต้องรู้เกี่ยวกับ..
และข้อความใน...
git diff
อย่างไรก็ตาม ...
... แหล่งที่มาของความสับสนทั่วไปที่นี่คือ..
และ...
หมายถึงสิ่งต่าง ๆ อย่างละเอียดเมื่อใช้ในคำสั่งเช่นgit log
คาดว่าชุดของการกระทำเป็นหนึ่งหรือมากกว่าอาร์กิวเมนต์ (คำสั่งเหล่านี้ทั้งหมดใช้git rev-list
เพื่อแยกรายการการคอมมิทจากการขัดแย้ง)
ความหมายของ..
และ...
สำหรับgit log
สามารถแสดงด้วยกราฟดังนี้:
ดังนั้นgit rev-list foo..bar
แสดงทุกอย่างในสาขาbar
ที่ไม่ได้อยู่ในสาขาfoo
ด้วย บนมืออื่น ๆ ที่git rev-list foo...bar
แสดงให้เห็นว่าคุณกระทำทั้งหมดที่มีทั้งในfoo
หรือ bar
แต่ไม่ใช่ทั้งสองอย่าง แผนภาพที่สามเพิ่งแสดงให้เห็นว่าถ้าคุณแสดงรายการกิ่งไม้ทั้งสองคุณจะได้รับการยอมรับที่อยู่ในหนึ่งหรือทั้งสองอย่าง
ฉันพบว่ามันสับสนเล็กน้อยและฉันคิดว่ากราฟไดอะแกรมช่วยได้ :)
¹ฉันพูดว่า "โดยทั่วไป" เท่านั้นตั้งแต่เมื่อแก้ไขข้อขัดแย้งในการรวมตัวอย่างเช่นgit diff
จะแสดงการผสานสามทางให้คุณเห็น
..
และ...
ในและความหมายที่แตกต่างกันของพวกเขาในgit diff
git log