短縮コミット ID が 2 つの異なるコミットを参照できる場合、Git は警告を表示しますか? 質問する

短縮コミット ID が 2 つの異なるコミットを参照できる場合、Git は警告を表示しますか? 質問する

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>...]'

私は実際の G​​it リポジトリでこれをテストし、次のように重複するプレフィックスを持つコミットを探しました。

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。 (ありがとう翻訳者指摘してくれてありがとう!)

おすすめ記事