ดูบันทึก git โดยไม่ต้องรวมคอมมิต


91

ฉันกำลังพยายามดูคอมมิตที่สร้างโดยผู้ใช้บางรายและต้องการลบการผสานที่ผู้ใช้ทำออกจากเอาต์พุต ฉันจะทำเช่นนั้นได้อย่างไร?

ฉันสามารถตรวจสอบการคอมมิตของผู้ใช้โดยใช้git log --author=<name>แต่ไม่สามารถลบคอมมิตการผสานในเอาต์พุตได้

PS: ความขัดแย้งในการรวมจะไม่เกิดขึ้นในเวิร์กโฟลว์ของ repo ที่เป็นปัญหาสาขาทั้งหมดจะถูก rebased ก่อนที่จะรวมเข้ากับ master ดังนั้นจึงปลอดภัยที่จะลบการรวมคอมมิชออกจากเอาต์พุตและในทำนองเดียวกันกิ่งคุณสมบัติสองสาขาจะไม่ถูกรวมเข้าด้วยกัน ความเป็นไปได้


2
จะเกิดอะไรขึ้นถ้าการรวมมีความขัดแย้งและเขาต้องแก้ไข?
Joe Phillips

2
@JoePhilllips นั่นไม่ได้เกิดขึ้นในขั้นตอนการทำงานของ repo ที่เป็นปัญหาสาขาทั้งหมดจะถูก rebased ก่อนที่จะรวมเป็นหลัก
. 無

7
ใช้git log --no-merges
0xAX

1
@ 0xAX โพสต์เป็นคำตอบได้ไหมฉันจะยอมรับ
. 無

คำตอบ:


140

ใช้

git log --author=<name> --no-merges

นอกจากนี้--first-parentตัวเลือกอาจให้ผลลัพธ์ที่เป็นประโยชน์สำหรับคุณ:

--first-parent ติดตามเฉพาะผู้ปกครองคนแรกที่กระทำเมื่อเห็นการรวมคอมมิต ตัวเลือกนี้สามารถให้ภาพรวมที่ดีขึ้นเมื่อดูวิวัฒนาการของสาขาหัวข้อหนึ่ง ๆ เนื่องจากการรวมเข้ากับสาขาหัวข้อมักจะเป็นเพียงการปรับให้อัปเดตอัปสตรีมเป็นครั้งคราวเท่านั้นและตัวเลือกนี้จะช่วยให้คุณไม่สนใจการกระทำแต่ละอย่างที่เข้ามา ประวัติของคุณโดยการรวม ไม่สามารถใช้ร่วมกับ - bisect


ดีกว่าด้วย --pretty=format:"%h%x09%an%x09%ad%x09%s"
k1eran

1
@ k1eran สิ่งนี้จะตัดทอนเนื้อหาที่กระทำ (สมมติว่ามี)
Erythros

1
@Erythros เข้าใจและฉันพบว่ามีประโยชน์ที่จะได้รับบทสรุปที่กระชับอ่านได้
k1eran

หรือรวมทั้งสีและกราฟlog --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent
Highmastdon

19

คุณสามารถละเว้นการผสานกับ--no-merges:

git log --no-merges --author=<name>

ดูรายละเอียดได้ที่manpage ของบันทึก git


2
สิ่งนี้ไม่รวมเฉพาะการรวมคอมมิตเท่านั้น แต่การกระทำตามปกติภายในสาขาต้นน้ำนั้นยังคงปรากฏให้เห็น
Shiplu Mokaddim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.