症状

作成したGitタグを削除したいが、ローカルとリモートの両方から消す方法がわからない

結論:まずこれを確認

  1. ローカル削除: git tag -d タグ名
  2. リモート削除: git push origin --delete タグ名
  3. 削除前に git tag -l で対象タグを確認する

操作フロー

    flowchart TD
    A[タグを削除したい] --> B{削除対象を確認}
    B --> C[git tag -l でタグ一覧表示]
    C --> D{ローカルのみ削除?}
    D -->|Yes| E[git tag -d タグ名]
    D -->|No| F{リモートも削除?}
    F -->|Yes| G[git tag -d タグ名]
    G --> H[git push origin --delete タグ名]
    E --> I[削除完了を確認]
    H --> I
    I --> J[git tag -l で確認]
  

よくある原因

  • タグ名を間違えて作成した - タイポや命名規則のミス
  • リリースを取り消すことになった - タグを付けたコミットが不適切だった
  • 古いタグを整理したい - 不要になったタグの掃除
  • 同じタグ名を別のコミットに付け直したい - 一度削除してから再作成が必要
  • CI/CDパイプラインで誤ってタグが作成された - 自動化による意図しないタグ
  • テスト用のタグを消し忘れていた - 開発中に作った一時的なタグ

操作手順

ステップ1: 削除対象のタグを確認する

    # 全タグを一覧表示
git tag -l

# 特定のパターンに一致するタグを表示(例: v1.* で始まるタグ)
git tag -l "v1.*"

# タグの詳細情報を確認
git show タグ名
  

🔍 チェックポイント: 削除したいタグ名が正しく表示されていることを確認

ステップ2: ローカルのタグを削除する

    # ローカルのタグを削除
git tag -d v1.0.0
  

実行結果の例:

    Deleted tag 'v1.0.0' (was abc1234)
  

🔍 チェックポイント: Deleted tag と表示されれば成功。括弧内はタグが指していたコミットのハッシュ

ステップ3: リモートのタグを削除する

    # リモートのタグを削除(方法1: 推奨)
git push origin --delete v1.0.0

# リモートのタグを削除(方法2: 古い書き方)
git push origin :refs/tags/v1.0.0
  

実行結果の例:

    To github.com:username/repo.git
 - [deleted]         v1.0.0
  

🔍 チェックポイント: [deleted] と表示されれば成功

ステップ4: 削除を確認する

    # ローカルのタグを確認
git tag -l

# リモートのタグを確認
git ls-remote --tags origin
  

🔍 チェックポイント: 削除したタグ名が一覧に表示されなければ完了

ステップ5: 他の人の環境からタグを削除する(必要な場合)

他のメンバーがすでにタグを取得している場合、各自で以下を実行する必要がある:

    # 削除されたリモートタグをローカルからも削除
git fetch --prune --prune-tags
  

NG行動(やってはいけないこと)

  • 確認せずに削除する - 間違ったタグを消すと、そのタグが指していたコミットの特定が困難になる
  • リリース済みのタグを無断で削除する - チームメンバーや外部ユーザーが参照している可能性がある
  • 削除と同時に同名タグを別コミットに付ける - 他の人の環境でタグの不整合が発生する
  • git push --tags --force を使う - 意図しないタグの上書きが発生するリスクがある

よくある質問(FAQ)

Q1: リモートのタグだけ削除してローカルは残したい場合は?

A: リモート削除コマンドだけを実行する。ローカルのタグはそのまま残る。

    git push origin --delete v1.0.0
  

Q2: 複数のタグを一度に削除したい場合は?

A: ローカルとリモートそれぞれで複数指定できる。

    # ローカルの複数タグを削除
git tag -d v1.0.0 v1.0.1 v1.0.2

# リモートの複数タグを削除
git push origin --delete v1.0.0 v1.0.1 v1.0.2
  

Q3: 削除したタグを復元できる?

A: タグが指していたコミットハッシュがわかれば復元可能。削除時に表示される (was abc1234) の部分を控えておく。

    # コミットハッシュを指定してタグを再作成
git tag v1.0.0 abc1234
  

関連するトラブル

準備中

解決しない場合

  • Git公式ドキュメント - git-tag
  • 確認すべきログ: git reflog でタグが指していたコミットを探す
  • 次に調べるキーワード: “git tag 復元”, “git reflog”, “git push tags”