คำสั่ง git บางคำรับพาเรนต์เป็นการแก้ไข อื่น ๆ (เช่นgit revert
) เป็นหมายเลขพาเรนต์ วิธีรับผู้ปกครองทั้งสองกรณี ฉันไม่ต้องการใช้คำสั่งบันทึกแบบกราฟิกเพราะมักจะต้องเลื่อนต้นไม้ลงเพื่อค้นหาพาเรนต์ที่สอง
คำสั่ง git บางคำรับพาเรนต์เป็นการแก้ไข อื่น ๆ (เช่นgit revert
) เป็นหมายเลขพาเรนต์ วิธีรับผู้ปกครองทั้งสองกรณี ฉันไม่ต้องการใช้คำสั่งบันทึกแบบกราฟิกเพราะมักจะต้องเลื่อนต้นไม้ลงเพื่อค้นหาพาเรนต์ที่สอง
คำตอบ:
ง่าย ๆ ที่git log <hash>
เรียกว่าการรวมการกระทำแสดงให้เห็นว่าตัวย่อของผู้ปกครอง:
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
เอาต์พุตผู้ปกครองตามจำนวนของพวกเขา: แฮชแรก (ซ้ายสุด) ใช้สำหรับพาเรนต์แรกและอื่น ๆ
หากสิ่งที่คุณต้องการเป็นเพียงแค่แฮชตัวเลือกที่เทียบเท่าสองตัวคือ:
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
ยังสามารถแสดงแฮชของผู้ปกครองได้แม้ว่ามันจะแสดงรายการแฮชสำหรับการกระทำ:
$ git rev-list --parents -n 1 <commit>
หากคุณต้องการตรวจสอบผู้ปกครองคุณสามารถดูพวกเขาโดยตรงกับกะรัตเป็น<commit>^1
และ<commit>^2
เช่น:
git show <commit>^1
นี่เป็นการพูดคุย สำหรับผสานปลาหมึกคุณสามารถอ้างถึง n TH<commit>^n
ผู้ปกครองเป็น คุณสามารถอ้างถึงผู้ปกครองทุกคนด้วย<commit>^@
แม้ว่าสิ่งนี้จะไม่ทำงานเมื่อจำเป็นต้องมีการมอบสิทธิ์ครั้งเดียว คำต่อท้ายเพิ่มเติมสามารถปรากฏขึ้นหลังจากที่ n THไวยากรณ์ปกครอง (เช่น<commit>^2^
, <commit>^2^@
) ในขณะที่พวกเขาไม่สามารถหลัง^@
( <commit>^@^
ไม่ถูกต้อง) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์นี้อ่านrev-parse
man page
git log
และgit show
เอาท์พุทสิ่งที่แตกต่างกันมากเมื่อมีผู้ปกครองเพียงคนเดียว ชอบgit log
ถ้าคุณต้องการความมั่นคง
git (v2.17.1)
คำตอบนี้ไม่ทำงานบนเครื่องของฉันกับอูบุนตู ฉันไม่เห็นMerge
ไฟล์ในgit log -1
เอาต์พุต