去年「Git でリモート・リポジトリーのタグを削除する」方法についてエントリーを書いた。その後、より簡単にリモート・リポジトリーにあるタグやブランチを削除する方法を知った。git の方が改善されたのか、もともとそういうことができるのに遠回りな方法しか見つけられなかったのか、それともその両方か? どうなのかは知らない。
間違ったタグやブランチを作る
こんな感じで、間違ったブランチやタグを作ってしまったとする。
$ git checkout -b WRONG_BRANCH_NAME $ git tag WRONG_TAG_NAME
そして、それをそのままリモート・ブランチに突っ込んでしまったとしやう。
$ git push origin WRONG_BRANCH_NAME:WRONG_BRANCH_NAME $ git push --tags origin master
削除方法
まず、カレント・リポジトリーで目的のタグやブランチを削除する。そして、リモート側に「空」になったタグやブランチを送り込む。実例はこんな感じ
まずはリモートのタグの削除
$ git tad -d WRONG_TAG_NAME $ git push origin :WRONG_TAG_NAME
続いてリモートのブランチの削除
$ git checkout master $ git branch -d WRONG_BRANCH_NAME $ git push origin :WRONG_BRANCH_NAME
あとがき
前のエントリーでは、タグ一つ削除するのに git push origin :refs/tags/WRONG_TAG_NAME
とフルパスを書いていて面倒だった。ぼくも何度も自分のページを読み返した。この「refs/tags/」の部分が覚えられないんだもの。
でも、今回の方法を知ってから、リモート・ブランチのタグ/ブランチ削除も楽に出来るやうになった。旧式の方法は、タグ名とブランチ名が同じになった時くらい以外は、もう使わなさそう。
No comments:
Post a Comment