TLDR : git log origin/master --no-merges
จะให้บันทึกของมาสเตอร์และไม่รวมคอมมิตที่ผสาน (ในกรณีนี้คือ x, y, z)
คะแนนดั้งเดิม
มีอีกวิธีหนึ่งทั่วไปในการดำเนินการเกี่ยวกับเรื่องนี้ที่ไม่ต้องพึ่งพา--first-parent
ซึ่งจะเป็นประโยชน์ในบางสถานการณ์ .. โดยใช้ตัวกรองการยกเว้นสาขา
git log origin/topic ^origin/master
สิ่งนี้จะให้บันทึกของคุณorigin/topic
โดยorigin/master
ลบการกระทำทั้งหมดออก
คุณยังสามารถเพิ่ม--no-merges
ซึ่งจะซ่อนการรวมคอมมิตที่คุณอาจต้องการหรือไม่ก็ได้
เคล็ดลับที่มีประโยชน์อีกประการหนึ่งคือการใช้shortlog
แทนlog
ซึ่งจะช่วยให้คุณได้รับข้อมูลสรุปที่ย่อแล้วซึ่งสามารถเป็นประโยชน์สำหรับบันทึกประจำรุ่นหรือการสื่อสารสิ่งที่อยู่ในสาขา
อัปเดต
หลังจากอ่านสิ่งนี้อีกครั้งคุณอาจต้องการสิ่งที่ตรงกันข้ามกับสิ่งที่ฉันโพสต์ อย่างไรก็ตามมันจะจบลงด้วยการยกเว้นทุกสิ่งที่อยู่บนหลักและ foo ( git log origin/master ^origin/foo
) อย่างไรก็ตามคุณยังสามารถรับสิ่งที่คุณขอ (ซ่อนการกระทำทั้งหมดที่เป็นส่วนหนึ่งของการผสาน) ด้วยgit log origin/master --no-merges
D
และZ
เป็นส่วนหนึ่งของสาขาที่รวมเข้าด้วยกัน?