この記事の前提条件
対象: 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 タグ名。ローカルとは別コマンドなので消し忘れに注意 - チーム運用時は、削除前に他のメンバーへの共有を忘れずに