
シリーズ:Git 実践シリーズ
01
ソース管理ワークフロー
02
タグの使い方(ローカル / Gitea Web)
03
コミットメッセージ規約
04
rebase の使い方
05
GitHub / Gitea Actions
「リリースしたバージョンに、後から戻れるように印を付けておきたい」——そんなときに使うのが タグ(tag) です。ブランチが「動き続ける作業の流れ」だとすれば、タグは「ある時点の状態に貼る、はがれない付箋」のようなものです。
この記事では、Git のタグを (A) ローカルのターミナルで作る方法 と、 (B) Gitea の Web 画面で作る方法 の2通りに分けて、作成からリモートとの同期、活用、削除までを順番に解説します。どちらの操作も「いまローカルでやっているのか、Gitea 側でやっているのか」を ローカル / Gitea Web のバッジで明示するので、迷子になりません。
💡 前提条件
Git がインストール済みで、リモートに Gitea のリポジトリ(例:origin )が登録されていることを前提にします。git push /git pull が一通りできれば大丈夫です。コマンド例のorigin は自分のリモート名に、main は自分の運用ブランチに読み替えてください。
そもそもタグとは何か
タグは、特定のコミットに付ける「名前付きの目印」です。もっともよく使うのは バージョン番号 (v1.0.0 など)を付けて、リリース時点のコードを後から正確に取り出せるようにする用途です。 ブランチとの一番の違いは、 タグは基本的に動かない という点です。ブランチは新しいコミットをするたびに先端が前へ進みますが、タグは一度貼ったコミットを指し続けます。だから「あのときリリースしたバージョン」を確実に再現できます。
✨ こんなときにタグが役立つ
本番リリースのたびにv1.2.0 のようにタグを打っておくと、障害が起きたときに「直前の安定版はどのコミットだったか」が一目で分かります。Gitea ではタグから「リリース(Release)」を作って、変更履歴やビルド済みファイルを配布することもできます。
軽量タグ と 注釈付きタグ
タグには2種類あります。違いは「メタ情報を持つかどうか」です。実務では 注釈付きタグ(annotated) を使うのが基本だと覚えておけば十分です。
| 種類 | 作り方 | 持つ情報 | 用途 |
|---|---|---|---|
| 軽量タグ (lightweight) | git tag v1.0.0 | コミットへの参照のみ | 一時的な目印・個人用メモ |
| 注釈付きタグ (annotated) | git tag -a v1.0.0 -m "..." | 作成者・日時・メッセージ・署名 | リリース用(推奨) |
✨ ポイント
注釈付きタグは「誰が・いつ・なぜ」を記録できるため、チームでのリリース管理に向いています。一方 Gitea の Web 画面から作るタグには、メッセージを付けられる入力欄が用意されています(後述)。迷ったら注釈付きにしておけば間違いありません。
パターンA:ローカルでタグを作成する ローカル
まずはターミナルでタグを作る方法です。ここでの操作はすべて ローカル のリポジトリに対して行われ、 明示的に push するまで Gitea 側には反映されません。 ここが最初のつまずきポイントなので、最後の「リモートへ push」まで通して読んでください。
手順1:注釈付きタグを作る(最新コミットに付ける)
Step A-1
# -a で注釈付きタグ、-m でメッセージを指定
$ git tag -a v1.0.0 -m "初回リリース"
# 作成されたか確認
$ git tag
#v1.0.0 軽量タグでよければ-a と-m を省略します。
$ git tag v1.0.0 手順2:過去のコミットにタグを付ける
Step A-2
「タグを打つのを忘れていた」というときは、対象コミットのハッシュを指定すれば後からでも付けられます。
# まず履歴からコミットを探す(短縮ハッシュを控える)
$ git log --oneline
#9f2c1ab (HEAD -> main) ログ出力を追加
#3a7e0d4 バグ修正
#c1d8b6f 初回コミット
# そのハッシュにタグを付ける(末尾にハッシュを指定するのがポイント)
$ git tag -a v0.9.0 -m "ベータ版" 3a7e0d4 手順3:タグの中身を確認する
Step A-3
# タグ一覧(パターンで絞り込みも可能)
$ git tag -l "v1.*"
#v1.0.0
# 注釈付きタグの中身(メッセージ・作成者・日時・指すコミット)を表示
$ git show v1.0.0
#tag v1.0.0
#Tagger: yaimi <yaimi@example.com>
#Date: ...
#初回リリース
#... 手順4:タグを Gitea(リモート)へ push する
Step A-4
ここが 最重要 です。git push は通常、タグを送信しません。タグは別途 push する必要があります。
# タグ名を指定して1つだけ送る
$ git push origin v1.0.0
# * [new tag] v1.0.0 -> v1.0.0# --tags でローカルにある全タグを送る
$ git push origin --tags⚠️ ️ git push だけではタグは送られない
普段のgit push origin main はコミットを送るだけで、ローカルのタグは Gitea に反映されません。「ローカルではgit tag に出るのに、Gitea の画面にタグが見当たらない」という場合は、git push origin タグ名 またはgit push origin --tags を忘れていないか確認してください。
🎯 ここまででできたこと
ローカルでタグを作り、Gitea へ反映するところまで完了しました。Gitea のリポジトリ画面を開き、 Releases → Tags にv1.0.0 が表示されていれば成功です。
パターンB:Gitea の Web 画面でタグを作成する Gitea Web
ターミナルを使わず、Gitea のブラウザ画面から直接タグを作ることもできます。「リリース作業を担当する人が、ローカルにクローンせずタグだけ打ちたい」といったケースで便利です。ここでの操作はすべて Gitea Web 側で完結し、 あとからローカルへ pull すれば手元にも取り込めます。
手順1:Tags ページを開く
Step B-1
リポジトリのトップから、上部メニューの Releases(リリース) を開きます。そのページ内の「新しいリリース」ボタンを押下し、 「新しいリリース」 画面へ移動できます。
Gitea -- リリース
X リリース
Y タグ
RSSフィード
新しいリリース
右上の「 新しいリリース 」ボタンを押下して、リリース画面に進みます。
手順2:New Tag でタグを作成する
Step B-2
タグ名・ターゲット(どのブランチを指すか)を入力・選択します。入力・選択後、タグだけ作成したいときは、右下の「 タグのみ作成 」ボタンを押下してください。また、メッセージ付きのタグを作成したい場合は下部の「 リリースのタイトルと内容をタグのメッセージにする 」チェックボックスをONにした後、「 タグのみ作成 」または、「 リリースを発行 」ボタンを押下するようにしてください。
Gitea -- 新しいリリース
Gitタグ
既存タグを選択 or 新しいタグ名を入力
@
タグをつけるブランチを選択
▼
リリースタイトル
リリースタイトルをここに入力
リリースノート
リリース内容をここに入力
リリースのタイトルと内容をタグのメッセージにする
タグのみ作成
リリースを発行
✨ Web から作るタグが指すコミット
Gitea の Web 画面で作るタグは、 選んだターゲット(ブランチ)の最新コミット に付きます。「特定の古いコミットだけにタグを打ちたい」という場合は、ローカルでハッシュを指定して作る(パターンA・手順2)方が確実です。Web 画面は「いまの main の先端にリリースタグを打つ」という典型的な使い方に向いています。
手順3:(任意)タグからリリースを作る
Step B-3
Gitea ではタグを土台にして リリース(Release) を作成できます。タグが「コミットへの目印」なのに対し、リリースは「変更点(リリースノート)やビルド済みファイルを添付して配布するための、一段上の概念」です。
| 項目 | タグ(Tag) | リリース(Release) |
|---|---|---|
| 正体 | コミットへの参照 | タグに紐づく配布物・説明 |
| 付けられる情報 | 名前・メッセージ | リリースノート・添付ファイル |
| 主な用途 | バージョンの目印 | 成果物の公開・配布 |
✨ タグとリリースの関係
Releases ページの「New Release」からタグ名を入力すると、 タグの作成とリリースの公開を同時に 行えます。すでにあるタグを選んでリリースだけ後付けすることも可能です。まずは「タグ=目印」「リリース=配布パッケージ」と整理しておけば十分です。
手順4:作成したタグをローカルへ取り込む ローカル
Step B-4
Gitea 側で作ったタグは、ローカルでそのままgit pull しても自動では落ちてこないことがあります。--tags を付けて明示的に取得しましょう。
# リモートの新しいタグを取り込む
$ git fetch origin --tags
# * [new tag] v1.1.0 -> v1.1.0
# ローカルに取り込めたか確認
$ git tag
#v1.0.0
#v1.1.0 作ったタグを活用する
タグはただ付けるだけでなく、「その時点に戻る」「差分を見る」といった操作の起点になります。ここは ローカル での操作が中心です。
タグの時点のコードを取り出す(チェックアウト)
# タグ時点のコードに切り替える(中身を確認したいとき)
$ git checkout v1.0.0
#Note: switching to 'v1.0.0'.
#You are in 'detached HEAD' state. ...
# タグから新しいブランチを作って作業を始める場合
$ git switch -c hotfix-1.0.1 v1.0.0⚠️ ️ detached HEAD に注意
タグを直接checkout すると、どのブランチにも属さない「detached HEAD」状態になります。中身を見るだけなら問題ありませんが、 そこで修正してコミットすると迷子になりやすい ため、作業するなら上の例のようにgit switch -c ブランチ名 タグ名 でブランチを切ってから始めましょう。
タグ間の差分を見る
# v1.0.0 から v1.1.0 で変わったファイルの一覧
$ git diff v1.0.0 v1.1.0 --stat
# 2つのタグの間に入ったコミットの一覧
$ git log v1.0.0..v1.1.0 --oneline タグを削除する(ローカル / リモートは別操作)
削除も「ローカルのタグ」と「Gitea 上のタグ」で操作が分かれます。両方消したい場合は2回の操作が必要です。
# ① ローカルのタグを削除
$ git tag -d v1.0.0
#Deleted tag 'v1.0.0'
# ② Gitea(リモート)のタグを削除
$ git push origin --delete v1.0.0✨ Gitea の画面からも削除できる
リモート側のタグは、Gitea Web の Tags 一覧からゴミ箱アイコンで削除することもできます。ただしその場合もローカルには残っているので、必要ならgit tag -d v1.0.0 で手元のタグも消してください。
コマンドリファレンス
ローカルでのタグ操作はこの一覧でほぼカバーできます。v1.0.0 の部分は自分のタグ名に置き換えてください。
| コマンド | コマンド内容 |
|---|---|
git tag -a v1.0.0 -m "..." | 注釈付きタグを作成する(リリース用の基本)。 |
git tag v1.0.0 | 軽量タグを作成する(メッセージなしの簡易な目印)。 |
git tag | ローカルのタグ一覧を表示する。 |
git show v1.0.0 | タグの詳細(メッセージ・作成者・指すコミット)を表示する。 |
git push origin v1.0.0 | 指定したタグ1つを Gitea へ送る。 |
git push origin --tags | ローカルの全タグをまとめて Gitea へ送る。 |
git fetch origin --tags | Gitea 側のタグをローカルへ取り込む。 |
git tag -d v1.0.0 | ローカルのタグを削除する。 |
git push origin --delete v1.0.0 | Gitea(リモート)のタグを削除する。 |
トラブルシュート
タグ周りでよくあるつまずきをまとめます。
❓ ローカルでタグを作ったのに Gitea の画面に出てこない
タグはgit push origin main では送られません。git push origin タグ名 またはgit push origin --tags を実行してください。逆に Gitea 側で作ったタグはgit fetch origin --tags でローカルに取り込みます。
❓ fatal: tag 'v1.0.0' already exists と言われる
同じ名前のタグがすでに存在します。タグは原則「貼り直さない」ものです。どうしても付け替えたい場合は、一度git tag -d v1.0.0 で削除してから作り直し、リモートにも--delete と再 push で反映します(共有後の付け替えはチームに影響するので注意)。
❓ Gitea の Web 画面で、古いコミットだけにタグを打ちたい
Web 画面のタグはターゲットブランチの最新コミットに付きます。特定の過去コミットを狙うなら、ローカルでgit tag -a v0.9.0 コミットハッシュ として作り、git push origin v0.9.0 で送るのが確実です。
❓ タグを消したのにローカルにまだ残っている
ローカルとリモートのタグは別管理です。Gitea 側で削除しても、ローカルにはgit tag -d v1.0.0 を実行するまで残ります。両方消したいときは2回の操作が必要だと覚えておきましょう。
まとめ
今回学んだこと
- タグは「ある時点のコミットに貼る、動かない目印」。リリース管理に使うのが定番
- 実務では
git tag -a -mの注釈付きタグを使うのが基本 - ローカル作成:
git tagで作り、git push origin タグ名で Gitea へ送る(push 忘れに注意) - Gitea Web 作成:Releases → Tags の「New Tag」から作成。ターゲットの最新コミットに付く
- Gitea で作ったタグは
git fetch origin --tagsでローカルへ取り込む - 古いコミット狙いのタグはローカルでハッシュ指定が確実
- 削除はローカルとリモートで別操作。両方消すには2回必要
🎯 この記事のゴール
ローカルと Gitea Web、どちらからでもタグを作れて、push / fetch で双方を同期できるようになりました。タグを起点にした差分確認やチェックアウトも押さえたので、リリースのたびにv1.2.0 のような印を残し、いつでも安心して過去のバージョンへ戻れます。
