web-dev-qa-db-ja.com

有効なgitタグは何ですか?

[文字を含むタグの作成中にエラーメッセージが表示されました。

致命的:「[」は有効なタグ名ではありません。

質問:gitにタグのルールはありますか?

62
Aik

名前が有効かどうかを確認するには

git check-ref-format

この page には、有効な名前の制約が含まれています。ページから引用(将来的には古くなる可能性があります):

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

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

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

  4. ASCII制御文字(値が\ 040または\ 177 DELより小さいバイト)、スペース、チルダ~、キャレット^、またはコロン:どこでも。

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

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

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

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

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

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

ご覧のとおり、あなたの場合、ルール(5)に違反しています。

--normalizeフラグを使用して、スラッシュに関してタグを正規化できます(先頭のスラッシュと連続するスラッシュを削除します)。

git check-ref-format --normalize "tags/weird//tag"

tags/部分は、tagを検証している種です。

@NikosAlexandrisとの話し合いの後、次の1つのライナーを記述して、テキストフィードバックで<some-tag>タグを確認できます。

git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag"
84