ブランチ名とタグ名について
多くのリポジトリでは、main
や update-icons
などの単純なブランチ名を使っています。 通常、タグ名も v1.2.3
のようなバージョン番号などの基本的な形式に従います。 ブランチ名とタグ名の両方で、パス区切り記号 (/
) を使って、area/item
や level-1/level-2/level-3
のように構� 化することもできます。 いくつかの例外 — 名前の最初と最後にスラッシュを使わない、名前に連続したスラッシュを使わない、など — を除いて、Git にはブランチやタグの名前に使用できる文字の制約がほとんどありません。 詳細については、Git のドキュメントの「git-check-ref-format」を参照してく� さい。
特殊文字のエスケープが必要な理由
CLI を使っているとき、ブランチやタグの名前に、シェル環境にとって特別な意味を持つ特殊文字が含まれている� �合があります。 これらの文字を Git コマンドで安全に使うには、引用符で囲むかエスケープする必要があります。そうしないと、コマンドが意図しない影響を受ける可能性があります。
たとえば、$
文字は多くのシェルで変数を参照するために使われます。 ほとんどのシェルは hello-$USER
のような有効なブランチ名を、リテラル文字列 hello-$USER
ではなく、単語 "hello"、ハイフン、変数 USER
の現在の値の� �に連続するものと解釈します。 ブランチ名に $
文字が含まれている� �合、シェルがそれを変数参照として展開しないようにする必要があります。 同様に、ブランチ名にセミコロン (;
) が含まれている� �合、ほとんどのシェルはこれをコマンド区切り記号として解釈するので、引用符で囲むかエスケープする必要があります。
ブランチ名やタグ名に含まれる特殊文字のエスケープ方法
特殊文字を含むほとんどのブランチやタグの名前は、'hello-$USER'
のように、一重引用符で囲むことで処理できます。
- Bash シェルでは、文字列を一重引用符で囲むと、一重引用符内の文字リテラル値が保持されます。
- Zsh は Bash と同様の動作をしますが、この動作は
RC_QUOTES
オプションを使って構成可能です。 - PowerShell も一重引用符内の文字をリテラルとして扱います。
これらのシェルでは、主な例外はブランチまたはタグ名自体に単一引用符が含まれている� �合です。 この� �合は、シェルの公式ドキュメントを参照してく� さい。
ブランチとタグの名前付け
可能であれば、特殊文字を含まないブランチ名やタグ名を作成してく� さい。これらはエスケープする必要があります。 ブランチ名とタグ名に使う、安全な既定の文字セットは次のとおりです。
- 英語のアルファベット (
a
からz
、A
からZ
) - 数字 (
0
から9
) - 限定された句読点文字のセット:
- ピリオド (
.
) - ハイフン (
-
) - アンダースコア (
_
) - スラッシュ (
/
)
- ピリオド (
混同を避けるために、ブランチ名は文字で始める必要があります。