それはあなたにこのようなものを与えるはずです:
$ 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桁以下では機能しません。)
ところで、これはタイプミスではありませんでした。重複するSHA1の数に関係なく、あいまいなSHA1に関するエラーメッセージが2回表示される理由はわかりません(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 は重複を警告すると言っても安全だと思います。(重複して動作することを拒否します。)以前のバージョンの多くもこのように機能したと思います。
更新
これをテストするときはint minimum_abbrev = 4
、environment.cのため、4桁以上のSHA1が必要です。(それを指摘してくれた@devnullに感謝!)
man gitrevisions
。これは、リビジョンに完全なSHA1-1名または「リポジトリ内で一意の先頭のサブストリング」を使用して名前を付けることができると記載されているため、少なくとも警告が表示されることを意味します。