2012年11月26日月曜日

【Git】タグを付け替える

Gitでのタグの付け方を勉強してました。
あるコミットに対してタグを付けたけど、やっぱり付け替えるやり方を見つけたのでメモ。

appling // gitタグの付け替えから引用します。
まずは既存のタグを削除
$ git tag -d <TAG>
$ git push origin :refs/tags/<TAG>
新たにタグを作成して公開
$ git tag <TAG>
$ git push --tags origin

この中で git push origin :refs/tags/<TAG> が良く分からなかったので、git help pushで調べてみました。
まずpushの構文は
 git push <repository> <refspec>
でした(かなり簡略化してあります)。

<refspec>には <src>:<dst> を指定できます。
<src>を空にした場合、<dst>を削除するという意味になるようです。
:<dst>を省略すると、<src>と同じrefが更新されるようです。

したがって、 git push origin :refs/tags/<TAG> はリモートの refs/tags/<TAG> を削除する命令ということですね。

そして、 push 時に --tags を指定すると、明示的に指定したrefに加え、 refs/tags 以下にあるすべての ref がアップロードされるようです。
したがって、 git push --tags origin は、<repository>=origin に、ローカルにあるすべてのタグをアップロードする命令ですね。

0 件のコメント:

コメントを投稿