あるコミットに対してタグを付けたけど、やっぱり付け替えるやり方を見つけたのでメモ。
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 件のコメント:
コメントを投稿