Gitでハッシュ値指定が重複したらどうなるのか

Git

この記事は最終更新日から1年以上が経過しています。

Gitではコミットすると

みたいな感じでハッシュ値がつきます。
reflogなどでみると、7文字しか表示されないんですが裏側では

こんな感じで40文字で保存されてます。
ブランチを移動する際にこのハッシュ値を指定して移動することができるのですが全文字入れなくても移動できます。

こんな感じで4文字まで省略できるっぽいです。
で、これが重複したらどうなるか気になったので調べました。


まずいっぱいコミットしたGitリポジトリを用意します。
統計でいうとハッシュ値は8文字前後では2000件付近で重複し始めるので2000回くらいコミットしました。
で、git reflog > hash.txt みたいにしてハッシュ値の一覧をとります。

で、こんな感じで検索。

すると何件かでました。

重複してるハッシュ値で指定すると

曖昧であるとでて、可能性のあるハッシュ値を提示してくれます。
なるほど。

この記事を書いた人

鈴木
鈴木juke / footworker
和服とvapeとСистемаと醗酵とたまごふわふわとカッティングシェイプスとジャージークラブとjuke/fwkに傾倒する人です

Git