1. ホーム
  2. git

[解決済み] 有効なgitタグは何ですか?

2023-03-26 22:17:24

質問

を含むタグを作成する際に、エラーメッセージが表示されます。 [ という文字が含まれるタグを作成する際にエラーメッセージが表示されました。

fatal: '[' は有効なタグ名ではありません。

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

どのように解決するのですか?

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

git check-ref-format

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

  1. スラッシュを含むことができる / を含むことができますが、スラッシュで区切られたコンポーネントはドットで始まることはできません。 . で始まったり、シーケンス .lock .

  2. 少なくとも1つの / . のようなカテゴリが存在することを強制します。 heads/ , tags/ などがありますが、実際の名称は制限されません。もし --allow-onelevel オプションが使われた場合、このルールは免除されます。

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

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

  5. クエスチョンマークを持つことはできない ? アスタリスク * またはオープンブラケット [ のいずれかになります。を参照してください。 --refspec-pattern オプションを参照してください。

  6. スラッシュで始まったり終わったりすることはできません。 / で始まったり、複数の連続したスラッシュを含むことはできません (例: --normalize オプションを参照してください)。

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

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

  9. これらは、1文字 @ .

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

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

を使用することができます。 --normalize フラグを使用すると、スラッシュに関してタグを正規化することができます(連続したものだけでなく、先行するスラッシュも削除されます)。

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

tags/ の部分は tag .

NikosAlexandris氏と議論した結果、タグをチェックするために次のようなワンライナーを書くことができます。 <some-tag> をチェックし、テキストでフィードバックします。

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