Git タグとは?
タグは特定のコミットに付ける固定された人間にわかりやすい名前で、最もよくリリースをマークするために使われます。
タグはコミットに付ける安定したラベルで、いつまでも名前で参照できます。ブランチと違い、タグは新しいコミットが来ても移動しないため、バージョン 1.0 やその他のマイルストーンになった正確なコードをマークするのに理想的です。
軽量タグと注釈付きタグ
軽量タグはコミットを指すだけの名前です。注釈付きタグは、タグを付けた人、日付、メッセージといった追加のメタデータを保存し、署名もできます。注釈付きタグはコンテキストを持ち、履歴の中で第一級のオブジェクトであるため、リリースに推奨されます。
タグの作成と push
注釈付きタグを作成し、明示的に push します。タグはデフォルトでは push されないためです。
Creating and pushing a tag
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0タグは移動しない
いったん配置されたタグは、新しい作業にかかわらず同じコミットを指し続けます。この永続性こそがタグがバージョンに使われる理由です。誰でも何年も後に v1.2.0 をチェックアウトして、出荷された正確なコードをバイト単位で取得できます。
CI/CD におけるタグ
タグはリリースパイプラインの一般的なトリガーです。workflow はバージョンパターンに一致する push されたタグをリッスンし、artifact のビルド、パッケージの公開、リリースの作成で応答できます。これにより日常のコミットと、意図的で名前付きのリリースがきれいに分離されます。
タグ付けのベストプラクティス
- リリースにはメタデータを持てる注釈付きタグを優先します。
- セマンティックバージョニングなど一貫したバージョン方式に従います。
- タグの push を忘れないようにします。通常の push には付いてきません。
- v* のようなタグパターンでリリース workflow をトリガーします。
重要なポイント
- タグは特定のコミットに付ける固定名で、リリースに理想的です。
- 注釈付きタグはメタデータを持ち署名もできますが、軽量タグは持ちません。
- バージョンタグの push はリリースパイプラインの一般的なトリガーです。
関連ガイド
What Is a Release Tag?What is a release tag? Learn how version tags mark shippable commits, how semantic versioning structures them…
What Is a Git Commit?What is a Git commit? An explainer covering what a commit records, its message and hash, how commits form his…
What Is a Signed Commit?What is a signed commit? Learn how cryptographic signatures prove who authored a commit, how verification wor…