[解決済み】あるコードベースの変更を一意に特定するために、git shaは一般的にどれくらい必要だと考えられていますか?
2022-04-07 03:16:07
質問
例えば、Git リポジトリのコミットに対してディレクトリ名を付けるようなディレクトリ構造を構築する場合、目から血が出ない程度に短く、しかし衝突の可能性が無視できる程度に長くしたい場合、SHA 部分文字列は一般的にどの程度必要でしょうか。
例えば、この変更を一意に識別したいとします。 https://github.com/wycats/handlebars.js/commit/e62999f9ece7d9218b9768a908f8df9c11d7e920
最初の4文字までなら使える。 https://github.com/wycats/handlebars.js/commit/e629
でも、それはリスクが高いような気がするんです。 しかし、数年の間に、例えば3万回の変更があるようなコードベースを想定して、8文字を使用した場合の衝突の可能性はどうでしょうか? 12? この種のものでは、一般に許容範囲とされる数字があるのでしょうか?
どのように解決するのですか?
この質問に対する回答は Pro Git bookの第7章 :
一般に、8文字から10文字程度で十分すぎるほどユニークになります。 プロジェクト内で 最大のGitプロジェクトの一つであるLinuxカーネル。 は、40文字のうち12文字が必要となりつつあります。 一意である。
短いSHAは7桁がGitのデフォルトなので、ほとんどのプロジェクトではそれで問題ありません。Kernel チームは何度も数字を増やしています。 数十万 コミットしています。ですから、あなたの約30kコミットに対しては、8桁あるいは10桁で全く問題ないでしょう。
関連
-
[解決済み】Githubの認証に失敗した - ... GitHubはシェルアクセスを提供しない
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] Git で古いコミットのタイムスタンプを変更するにはどうしたらいいですか?
-
[解決済み] Git は Blob の SHA-1 衝突をどのように処理するのでしょうか?
-
[解決済み] gitの履歴から大きなコミットを見つけるには?
-
[解決済み] ターミナルでGitのユーザー名を変更するには?
-
[解決済み】Gitで複数のコミットの著者名やコミッター名、Eメールを変更する方法は?
-
[解決済み】git bashでフォルダを変更する方法は?
-
[解決済み】WindowsでGit Bashのデフォルトの場所を変更するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み】gpgがデータの署名に失敗した fatal: failed to write commit object [Git 2.10.0].
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] リモートブランチにプッシュできない、ブランチに解決できない