ควรให้สิ่งนี้แก่คุณ:
$ git log cee157
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
fatal: ambiguous argument 'cee157': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ฉันเพิ่งทดสอบสิ่งนี้กับที่เก็บ Git จริงโดยค้นหาการกระทำที่มีคำนำหน้าซ้ำกันเช่นนี้:
git rev-list master | cut -c-4 | sort | uniq -c | sort -nr | head
สิ่งนี้จะนำรายการของการแก้ไขเข้าmasterมาตัดอักขระ 4 ตัวแรกและโยนส่วนที่เหลือออกนับรายการที่ซ้ำกันและเรียงลำดับตามตัวเลข ในพื้นที่เก็บข้อมูลที่ค่อนข้างเล็กของฉันประมาณ 1500 คอมมิตฉันพบว่ามีการแก้ไขเล็กน้อยพร้อมคำนำหน้า 4 หลักทั่วไป ฉันเลือกคำนำหน้า 4 หลักเพราะดูเหมือนว่าความยาวตามกฎหมายที่สั้นที่สุดที่ Git รองรับ (ใช้ไม่ได้กับตัวเลข 3 หลักหรือน้อยกว่าแม้ว่าจะไม่คลุมเครือก็ตาม)
Btw นี่ไม่ใช่การพิมพ์ผิดฉันไม่รู้ว่าทำไมข้อความแสดงข้อผิดพลาดเกี่ยวกับ SHA1 ที่ไม่ชัดเจนจึงปรากฏขึ้นสองครั้งโดยไม่คำนึงถึงจำนวน SHA1 ที่ซ้ำกัน (ลองด้วย 2 และ 3):
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
(เปิดทั้งคู่stderrจริงๆแล้วเอาต์พุตทั้งหมดเปิดอยู่stderrไม่มีอะไรเปิดstdout)
ทดสอบใน Windows:
$ git --version
git version 1.8.1.msysgit.1
ฉันคิดว่ามันปลอดภัยที่จะบอกว่าหากเวอร์ชันของคุณ> = 1.8.1 Git จะเตือนคุณถึงรายการที่ซ้ำกัน (จะปฏิเสธที่จะดำเนินการกับรายการที่ซ้ำกัน) ฉันเดาว่าเวอร์ชันเก่า ๆ ก็ใช้งานได้เช่นกัน
UPDATE
เมื่อทดสอบสิ่งนี้คุณต้องมี SHA1 อย่างน้อย 4 หลักเนื่องจากint minimum_abbrev = 4อยู่ในสภาพแวดล้อม c . (ขอบคุณ@devnull ที่ชี้ให้เห็น!)
man gitrevisionsซึ่งอย่างน้อยก็แสดงถึงคำเตือนเนื่องจากระบุว่าคุณสามารถตั้งชื่อการแก้ไขด้วยชื่อ SHA1-1 แบบเต็มหรือ "สตริงย่อยนำหน้าที่ไม่ซ้ำกันภายในที่เก็บ"