Git & Version Control

Gitブランチ名チェック文字の位置から原因を確認

名前またはハッシュを一つ入力し、構文エラーと命名上の助言を区別して確認します。

Gitブランチ名チェック

名前またはハッシュ

検証レポート

名前またはハッシュを入力してください。

ブラウザー内で検証します。入力の送信やリポジトリへのアクセスは行いません。

検証オプション

一つの値、最大4,096個のUTF-16コード単位。診断は50件ずつ表示します。

名前またはハッシュを入力してください。

Gitブランチ名チェックは、ブランチ作成時のエラーだけでは理由が分からない場合に役立ちます。貼り付けた空白や、パスの区切りに接したドットは、見た目だけでは見落としやすい箇所です。

最初に入力の用途を選んでください。mainはブランチ名として有効でも、通常の参照名としては区切りが足りません。数字だけの文字列も、選択したハッシュ方式によって完全なIDか短縮形かが変わります。

Gitブランチ名チェックで原因を読み解く

元の名前を残して位置を示す

Gitブランチ名チェックでは入力を勝手に整形しません。問題のある行と列を示し、候補名は別の値として表示します。大文字や日本語に込めた意味を失う変更が、知らないうちに適用されることはありません。

名前の断片の一か所が強調され、別の診断カードにつながる図

短く見せる操作と一意性の確認を分ける

リリースノートに載せる短縮ハッシュは、既存の文字列の先頭部分です。短くしてもオブジェクトを調べたことにはなりません。完全形と短縮形を区別し、不足している文字を推測して補うことはありません。

長い断片列の先頭部分を短い列へ取り出し、リポジトリの状態は未確認として示す図

用途を切り替えて同じ入力を比較する

01

ブランチ名と参照名を使い分ける

モードを変えても入力は保持されます。mainとrefs/heads/mainを試すと違いを確認できます。単一階層の許可は参照名のスラッシュ要件だけを外します。

  • 末尾のドットや連続したスラッシュが許可されるわけではありません。
02

ハッシュ方式を先に指定する

SHA-1の完全形は40桁、SHA-256は64桁です。短縮形を許可すると4桁以上、完全形より短い値を受け付けます。40桁の値もSHA-256では短縮形です。

  • 表示の初期値は先頭7文字ですが、4文字しかなければ4文字だけを表示します。
03

編集後のレポートを確認する

自動チェックは編集から350ミリ秒待って実行されます。無効にすると実行ボタンが現れ、Ctrl/Cmd + Enterでも検証できます。診断を押すと該当位置へ移動します。

  • 編集直後は出力をコピーできません。検証済みの無効レポートは診断資料として保存できます。

名前とIDを異なる基準で検証

ブランチ命名規則に沿った判定

HEADと先頭のハイフンはブランチ固有の制約です。参照名では単一階層を明示的に許可できます。git check-ref-formatの字面の規則を使い、過去のチェックアウト先へ展開しません。

使えない文字を行と列で特定

ASCII制御文字、空白、禁止記号、..や@{の並びを検出します。各パス要素の先頭ドットと.lock終端も確認します。行と列は1から始まり、列とJSON内のオフセットはUTF-16コード単位で数えます。

独立した候補名を生成

ASCII文字を小文字化し、英数字と._-/以外をハイフンへ置き換えます。禁止された構造を整え、再検証した候補だけを表示します。日本語はローマ字化せず、残せる英数字がなければbranchを使います。

完全形と短縮ハッシュを区別

方式、桁数、完全形か短縮形かをレポートに記録します。大文字の16進文字も保持されます。先頭部分の表示はファイルのハッシュ計算ではなく、SHA-1からSHA-256への変換でもありません。

文字列だけでは分からないこと

リポジトリの状態は調べない
コミットの存在、オブジェクトの種類、接頭辞の一意性、作成権限は判定できません。fooがあるためfoo/barを作れない衝突や、保護ブランチ、ファイルシステムの制限も実際の環境で確認してください。
空白を消さず、一つの値として扱う
先頭や末尾の空白も検証対象です。改行は一括処理の区切りではなく、禁止文字として扱います。HEAD~1、main^、@{-1}などのリビジョン式やワイルドカード付きrefspecは対象外です。
命名の助言と構文エラーは別
Gitで有効でもシェルの引用が必要な記号があります。ASCIIの推奨や、GitHubのrefs/接頭辞・40桁16進名の制限は別の注意として表示します。チーム固有の正規表現や予約名一覧は適用しません。
入力の上限はツールの処理予算
最大4,096個のUTF-16コード単位を受け付けます。これはGit全体の名称上限ではありません。診断は50件ずつ表示されますが、JSONのコピーとダウンロードには検証結果の全件が入ります。
置き換えはプレビューで確認
サンプルと消去は変更前後の文字数と置き換え内容を示してから適用します。一回の取り消しで入力、オプション、レポート状態を戻せます。候補名はコピー専用で意味の一致を保証せず、安全に上限内へ収まらなければ表示しません。

Gitブランチ名チェックのよくある質問

Gitのブランチ名が有効か確認するには?

字面の名前にはブランチモードを使います。手元のシェルならgit check-ref-format --branchに適切に引用した名前を渡して確認できます。mainやmasterは一般的に使われますが、保護される場合があるだけで構文上の禁止名ではありません。

ブランチ名にはどの文字が使えませんか?

ASCII制御文字、空白、~、^、:、?、*、[、バックスラッシュなどは使えません。連続したドットや@{も禁止です。一方で閉じ角括弧の]や$を一律に禁止とは判定しません。シェルでは別途引用が必要な場合があります。

ブランチ名にドットを使えますか?

使えますが場所に条件があります。パス要素の先頭、名前全体の末尾、連続する二つのドットは無効です。a./bは有効ですがa/b.は無効です。.lockで終わる要素も拒否され、.LOCKとは区別されます。

短縮コミットハッシュの長さはどう決まりますか?

Gitはリポジトリ内で一意になる接頭辞を選びます。指定できる最小長は4で、既定値はcore.abbrevの設定に依存します。このページの7文字は表示用の初期値であり、他のオブジェクトと衝突しない長さを保証しません。

SHA-1からコミットの存在を確認するには?

対象リポジトリへの問い合わせが必要です。git cat-file -eなどでオブジェクトの存在を確かめられますが、コミット型かどうかも必要に応じて確認してください。桁数が正しい16進文字列というだけでは、実在するコミットとは言えません。

解決しませんでしたか?

入力の用途に合った判断を

Gitブランチ名チェックで構文の原因を確認し、存在や一意性など環境に依存する情報は対象リポジトリで確かめてください。