git tagとは?「使い方」などをわかりやすく解説!

Gitでのバージョン管理に欠かせない「タグ(tag)」機能。

この記事では、タグ(tag)を付けることができる『git tagコマンド』について、以下の内容をわかりやすく解説します。

  • git tagとは?
  • git tagの基本的な使い方
  • git tagの種類(軽量タグと注釈付きタグの違い)
  • git tagのコマンド
    • ローカルのタグ一覧を表示する(git tag
    • リモートのタグ一覧を表示する(git ls-remote --tags origin
    • 現在のHEADに軽量タグを付ける(git tag <タグ名>
    • 現在のHEADに注釈付きタグを付ける(git tag -a <タグ名> -m "コメント"
    • 特定のコミットに軽量タグを付ける(git tag <タグ名> <コミットID>
    • 特定のコミットに注釈付きタグを付ける(git tag -a <タグ名> <コミットID> -m "コメント"
    • ローカルのタグを削除する(git tag -d <タグ名>
    • タグをリモートに送信する(git push origin <タグ名>
    • 全タグを一括でリモートに送信する(git push origin --tags
    • リモートのタグを削除する(git push origin --delete <タグ名>
    • タグの詳細を確認する(git show <タグ名>
    • タグに切り替える(git checkout <タグ名>
  • git tagの実務的な使用例

git tagとは?

git tagは、特定のコミットに「名前(ラベル)」を付けるGitコマンドです。

よくある使い道は、リリース時のバージョン管理です。たとえば、git tag v1.0.0とコマンドを実行すると、v1.0.0というタグを付けることができます。そうすることで、「このコミットがv1.0.0のリリースです」と明確にすることができます。

このように、git tagコマンドを使えば、簡単にタグを付けることができます。git tagコマンドがよく使われる主な場面を以下にまとめます。

git tagを使う場面

  • リリースの管理(これが一番多い)
    • リリースのタイミングにタグ(例:v1.0.0)を付ける。
  • 開発途中のマイルストーン管理
    • 開発途中の節目にタグを付けておく。
  • 重要コミットへの目印
    • 後で参照しやすくするためにタグを付けておく。

git tagの基本的な使い方

git tagコマンドの使い方は簡単です。以下のコマンドを実行すると、v1.0.0というタグを現在チェックアウトしているブランチの最新コミット(HEAD)に対して付けることができます。

git tag <タグ名>

例
git tag v1.0.0

補足

  • タグはリモートに自動では送られません。そのため、git tag <タグ名>を実行後に手動でgit push origin <tag>またはgit push origin --tagsを実行してリモートに送る必要があります。
  • 同じタグ名を再利用したい場合は、-fオプションで上書きすることができます。ただし、チームで使っている場合は注意しましょう。

git tagの種類(軽量タグと注釈付きタグの違い)

Gitには2つのタグがあります。それぞれ特徴が異なります。

種類説明コマンド例
軽量タグ
(Lightweight Tag)
名前だけを付けるシンプルなタグ。
メタ情報(作成者、日付など)は含まれない。
git tag v1.0.0
注釈付きタグ
(Annotated Tag)
タグ名に加えて、メッセージや作成者・日付などの情報を含む。
署名付きにもできる。
git tag -a v1.0.0 -m "バージョン1.0.0リリース"

git tagのコマンド

以下は、git tagに関するよく使うコマンド一覧です。実務でもよく使う場面が多いので、覚えておくと便利です。

コマンド説明
git tagローカルのタグ一覧を表示する
git ls-remote --tags originリモートのタグ一覧を表示する
git tag <タグ名>現在のHEADにタグ(軽量タグ)を付ける
git tag -a <タグ名> -m "コメント"現在のHEADにタグ(注釈付きタグ)を付ける
git tag <タグ名> <コミットID>特定のコミットにタグ(軽量タグ)を付ける
git tag -a <タグ名> <コミットID> -m "コメント"特定のコミットにタグ(注釈付きタグ)を付ける
git tag -d <タグ名>特定のローカルタグを削除する
git push origin <タグ名>特定のローカルタグをリモートに送信する
git push origin --tagsすべてのローカルタグを一括でリモートに送信する
git push origin -d <タグ名>
git push origin :<タグ名>
git push origin :refs/tags/<タグ名>
特定のリモートタグを削除する
git show <タグ名>タグの詳細を表示する
git checkout <タグ名>タグの時点の状態に切り替える(ブランチではない)

各コマンドについて順番に説明します。

ローカルのタグ一覧を表示する

git tag

ローカルにあるすべてのタグの一覧を表示します。作成日時や詳細は表示されません(詳細を見たい場合はgit show コマンドを使いましょう)。

リモートのタグ一覧を表示する

git ls-remote --tags origin

リモートにあるすべてのタグの一覧を表示します。originはなくても構いません。

現在のHEADにタグ(軽量タグ)を付ける

git tag v1.0.0

現在のHEAD(最新のコミット)に対して、軽量タグを付けます。軽量タグは「注釈」や「メタ情報(作成者、日付など)」が含まれないシンプルなタグです。

よく使うコマンドです。タグを付けた後は、git push origin <tag>コマンドを実行してリモートに送ることを忘れずに行いましょう。

現在のHEADにタグ(注釈付きタグ)を付ける

git tag -a v1.0.0 -m "バージョン1.0.0 リリース"

現在のHEAD(最新のコミット)に対して、注釈付きタグを付けます。注釈付きタグには「注釈」や「メタ情報(作成者、日付など)」が含まれます。

特定のコミットにタグ(軽量タグ)を付ける

git tag v1.0.0 abc1234

指定したコミット(例:abc1234)に対して、軽量タグを付けます。現在のHEADではない場所にタグを付けたいときに使います。

特定のコミットにタグ(注釈付きタグ)を付ける

git tag -a v1.0.0 abc1234 -m "バージョン1.0.0 リリース"

指定したコミット(例:abc1234)に対して、注釈付きのタグを付けます。

特定のローカルタグを削除する

git tag -d v1.0.0

ローカルに存在するタグを削除します。リモートには影響ありません。

特定のローカルタグをリモートに送信する

git push origin v1.0.0

ローカルで作成したタグをリモートリポジトリに送信します。タグはデフォルトでは自動でpushされないため、必要に応じて手動で送信する必要があります。

すべてのローカルタグを一括でリモートに送信する

git push origin --tags

ローカルにあるすべてのタグをまとめてリモートに送信します。初回のリリース作業など、タグを一括で共有したいときに便利です。

特定のリモートタグを削除する

git push origin --delete v1.0.0

リモートリポジトリ上のタグを削除します。以下のコマンドでも削除することができます。リモートの<タグ名>に対して「空のタグを送る」ことで削除しているイメージです。

git push origin :v1.0.0
または
git push origin :refs/tags/v1.0.0

タグの詳細を表示する

git show v1.0.0

タグが付けられたコミットの情報を表示します。注釈付きタグの場合は注釈内容も表示されます。軽量タグの場合は、単にそのコミットの内容のみが表示されます。

タグに切り替える

git checkout v1.0.0

タグが指す状態にワーキングツリーを切り替えます。

タグに切り替えた状態は「detached HEAD(分離HEAD)」になります。この状態でコミットしてもブランチには記録されないため、作業を続けたい場合は新しいブランチを作成しましょう。

例
git checkout -b new-feature v1.0.0

git tagの実務的な使用例

リリースタグを付けて、リモートに共有します。

git tag v1.0.0
git push origin v1.0.0

タグの詳細を確認し、リモートリポジトリに送られたかを確認します。

git show v1.0.0
git ls-remote --tags origin

タグを間違えて付けた場合には削除をします。

git tag -d v1.0.0                # ローカル削除
git push origin --delete v1.0.0  # リモート削除

本記事のまとめ

この記事では『git tagコマンド』について、以下の内容を説明しました。

  • git tagとは?
    • 特定のコミットに「名前(ラベル)」を付けてわかりやすく管理できる機能。主にリリースやマイルストーンの目印に使う。
  • タグの種類
    • 軽量タグ(Lightweight Tag):名前だけ付けるシンプルなタグ(メタ情報なし)
    • 注釈付きタグ(Annotated Tag):コメントや作成者情報、日付なども含めるリッチなタグ
  • よく使うコマンド
    • git tag <タグ名>:現在のHEADに軽量タグを付ける
    • git push origin <タグ名>:タグをリモートに送る
    • など
  • タグ使用時の注意点
    • タグは自動でリモートに送られないため、git pushが必要
    • 同じタグ名で上書きしたい場合は-fオプションを使う(ただし慎重に)

お読み頂きありがとうございました。