Git tag
コミットに名前を付けてスナップショットとして保存する
タグ
tag はブランチのようなものですが、変更が出来ません。
あるコミット時点のスナップショットです。
git では、コミットに名前やメッセージや署名を付与して、タグを作成することが出来ます。
一般的には、リリース時点のスナップショットを保存するためにタグを利用していることが多いと思います。
tag の表示
現在のタグ一覧を出力します。表示順はアルファベット順です。
$ git tag
パターンを指定してタグを表示するには -l を使用します
$ git tag -l '0.01*'
0.01
0.01beta
tag を打つ
一番簡単にタグを打つには、git tag のあとにタグ名を渡すことです。
$ git tag TAG_NAME
メッセージ付きでタグを打つには以下のようにします。
$ git tag -a TAG_NAME -m 'MESSAGE'
-m を省略すると、エディタが起動し、そこでメッセージを入力できます。
$ git tag -a TAG_NAME
署名付きでタグを打つには、-a を -s にします。
$ git tag -s TAG_NAME -m 'MESSAGE'
タグの署名を検証する
$ git tag -v TAG_NAME
過去のコミットにタグをつける
コミットのハッシュを見つけます。
$ git log --pretty=oneline
c436b76f131ea6d409a3082505c24ddc3ce0142f added script_files in Build.PL
6c46cfbaa3859ef774cf011685353617c6daacd7 lil fixed
7f6e6c13dec000f93e44d228b441626d230baa81 prepare for cpan dist
0cda755a1a78fd875efd6bf2323fefe30a83bf16 initial commit
ハッシュを渡してタグをつけます。
$ git tag -a TAG_NAME 7f6e6c13dec000f93e44d228b441626d230baa81
タグをリモートに送信する
$ git push origin TAG_NAME
手元にあるタグのなかで、リモートサーバーに存在しないものをまとめて転送する --tags オプションが便利です。
$ git push origin --tags
タグからブランチを作成
TAG_NAME の状態をチェックアウトして、BRANCH_NAMEブランチを作成して切り替える。
$ git checkout -b BRANCH_NAME TAG_NAME
タグを削除する
$ git tag -d TAG_NAME
リモートのタグを消すには以下のようにする。
$ git push origin :refs/tags/TAG_NAME