2010-06-03

git でリモートにあるブランチやタグを削除する (その二)

去年「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