2つの異なるコミットIDを参照できる場合cee157
、例えば
cee157eb799af829a9a0c42c0915f55cd29818d4
そしてcee1577fecf6fc5369a80bd6e926ac5f864a754b
と入力すると Git は警告しますかgit log cee157
? (または Git 1.8.5.2 (Apple Git-48) では と入力できますgit log cee1
)。
そうなるべきだと私は思いますが、そうすると主張する権威ある情報源は見つかりませんでした。
ベストアンサー1
次のような結果になるはずです:
$ 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 の数 (2 と 3 で試しました) に関係なく、あいまいな SHA1 に関するエラー メッセージが 2 回表示される理由がわかりません。
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
これをテストする場合、少なくとも4桁のSHA1が必要です。環境.c。 (ありがとう翻訳者指摘してくれてありがとう!)