ブランチ名内で不正な文字はどれですか?


回答:


299

refnameの命名規則:

Gitは、参照の命名方法に次のルールを課します。

  1. /階層(ディレクトリ)グループ化のためにスラッシュを含めることができますが、スラッシュで区切られたコンポーネントは、ドットで開始し.たり、シーケンスで終了したりすることはできません.lock

  2. 少なくとも1つは含まれている必要があります/。これによりheads/tags/などのカテゴリの存在が強制されますが、実際の名前は制限されません。この--allow-onelevelオプションを使用すると、このルールは適用されません。

  3. 彼らは..どこにも2つの連続したドットを持つことができません。

  4. ASCII制御文字(つまり、値が\040、またはより小さいバイト\177 DEL)、スペース、チルド~、キャレット^、またはコロンを:どこにも含めることはできません。

  5. 疑問符?、アスタリスク*、または開き角括弧を[どこにも置くことはできません。--refspec-patternこのルールの例外については、以下のオプションを参照してください。

  6. スラッシュで開始または終了し/たり、複数の連続したスラッシュを含めることはできません(--normalizeこのルールの例外については、以下のオプションを参照してください)。

  7. ドットで終わることはできません ..

  8. シーケンスを含めることはできません@{

  9. 単一の文字にすることはできません@

  10. を含めることはできません\

さらに、ブランチ名の追加ルール:

  1. ダッシュで始めることはできません -

JakubNarębskiのおかげで、のmanページgit check-ref-format詳細が記載されています。


9
「>」が許可されていることに言及する価値はありますが、bashでそのブランチに切り替えるには、先行する「\」でエスケープする必要があります
igniteflow

3
リンクしたmanページのルール2について混乱しています。それは言う、「彼らは少なくとも1で含まれている必要があります2 /。」説明してください?私の枝のどれ/にも名前にa がありません。
chharvey 14

7
@chharvey:なし「ブランチ」/heads/「自動的に」それの前に追加。実際:がなければ/、それがブランチなのかタグなのかはまだ明らかではありません...
Robert Siemer

1
@DMTintner:コンマが許可されます。
Robert Siemer、2015

3
ここにこれの正規表現があります/^[\./]|\.\.|@{|[\/\.]$|^@$|[~^:\x00-\x20\x7F\s?* [\\] / gこれにより無効な文字が検出されるため、それらを「-」または任意の文字に置き換えることができます
Tony Brix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.