ตั้งแต่ผมต้องการสร้างภาพเหล่านี้ผมคิดว่ามันอาจจะมีมูลค่าการใช้พวกเขาในคำตอบอื่นแม้ว่ารายละเอียดของความแตกต่างระหว่าง..(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 diffgit log