Seharusnya memberi Anda sesuatu seperti ini:
$ 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>...]'
Saya baru saja menguji ini pada repositori Git yang asli, dengan menemukan commit dengan duplikat awalan seperti ini:
git rev-list master | cut -c-4 | sort | uniq -c | sort -nr | head
Ini membawa daftar revisi master, memotong 4 karakter pertama dan membuang sisanya, menghitung duplikat dan mengurutkan secara numerik. Dalam repositori saya yang relatif kecil dengan ~ 1500 commit, saya menemukan beberapa revisi dengan awalan 4 digit yang umum. Saya memilih awalan 4 digit karena tampaknya merupakan panjang hukum terpendek yang didukung oleh Git. (Tidak bekerja dengan 3 digit atau kurang, meskipun tidak ambigu.)
Btw ini bukan salah ketik, saya tidak tahu mengapa pesan kesalahan tentang SHA1 ambigu muncul dua kali, terlepas dari jumlah duplikat SHA1 (dicoba dengan 2 dan 3):
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
(Keduanya aktif stderr. Sebenarnya seluruh output aktif stderr, tidak ada yang aktif stdout.)
Diuji di Windows:
$ git --version
git version 1.8.1.msysgit.1
Saya pikir aman untuk mengatakan bahwa jika versi Anda> = 1.8.1, Git akan memperingatkan Anda tentang duplikat. (Ini akan menolak untuk beroperasi dengan duplikat.) Saya kira versi yang jauh lebih tua juga bekerja dengan cara ini.
MEMPERBARUI
Saat menguji ini, Anda memerlukan minimum 4 digit SHA1, karena int minimum_abbrev = 4di environment.c . (Terima kasih @devnull untuk menunjukkannya!)
man gitrevisions, yang setidaknya menyiratkan peringatan akan diberikan karena menyatakan bahwa Anda dapat memberi nama revisi dengan nama lengkap SHA1-1 atau "substring utama yang unik dalam repositori".