gitでtagをリモート・ローカルで削除する方法

この記事の前提条件

対象: Git(バージョン問わず)
難易度: ★☆☆
所要時間: 約3分

リリースの目印として付けたgitのtag、間違ったコミットに付けてしまったり、命名ルールを変えたくなったり…削除したい場面は意外とあります。ただローカルとリモート、それぞれ別々にコマンドを打つ必要があるため、「ローカルだけ消して満足していたら、リモートにまだ残っていた」という事故が起きがちです。

ローカルのtagを削除する

git tag -d タグ名

-d--deleteの省略形です。実行後、git tagコマンドでタグの一覧を表示し、消えていることを確認しておきましょう。

リモートのtagを削除する

ローカルを消しただけでは、GitHubなどのリモートリポジトリにはまだtagが残っています。リモート側はgit pushを使って削除します。

git push --delete origin タグ名
💡 コロンを使った古い書き方もある

解説記事によってはgit push origin :タグ名(タグ名の前にコロン)という書き方も紹介されていますが、これは「空の参照をpushして上書きする」という少し分かりにくい仕組みを利用した古い記法です。今は--deleteオプションの方が「削除している」という意図がコマンドから読み取りやすいため、こちらを使うのがおすすめです。動作としてはどちらも同じ結果になります。

実務での注意点: 削除したタグをCI/CDが参照していないか確認する

タグをトリガーにデプロイやビルドを行うCI/CD設定を組んでいる場合、削除したタグ名を他の人がまだローカルで参照していると、混乱の元になります。チームで運用している場合は、タグを削除する前に一言共有しておくと安全です。

まとめ

  • ローカルの削除はgit tag -d タグ名
  • リモートの削除はgit push --delete origin タグ名。ローカルとは別コマンドなので消し忘れに注意
  • チーム運用時は、削除前に他のメンバーへの共有を忘れずに