git で branch や tag を利用してバージョンを作成したりしているのですが、 tag を使ってバージョンを作成していた時に、その tag を チェックアウト(checkout) する方法がぱっと出てこないので、調べてみることにした。
タグのチェックアウト
タグ(tag)を使うことで、その時点のバージョンを利用したり、元に戻したりなどができるようになります。ブランチでもいいのですが、リリース作成するたびに tag を利用することが多いので、今回は tag のチェックアウト方法です。
ブランチを作成してチェックアウト
$ git checkout -b tag refs/tags/tag
ブランチを作成する場合は、 -b
のオプションと ブランチ名が必要になります。上記の例では tag と書いてますが、おそらくバージョン名だったりが入ってくると思います。
ブランチを作成しないチェックアウト
$ git checkout refs/tags/tag
ブランチを作成しないで戻す場合は refs/tags/tag
のみでチェックアウトをするだけです。
タグ一覧ととタグをつける方法
現在付いているタグの一覧をみる場合は
$ git tag
と入れるだけです。
そして、リリース時などでタグを付ける場合は
$ git tag -a tagname
これを入力するとエディタが開いてタグをつけるときのコメントの入力になります。
コメントもワンライナーでコマンド時点で入れてしまいたい場合は
$ git tag -a tagname -m 'comment'
もっと簡単なタグの付け方
もっともっと簡単なタグとしてはオプションも何もつけずに名前を入れることです。
$ git tag tagname
注釈コメントなしに単純に特定のコミットにタグを紐付ける場合はこれでタグつけると簡単です。
過去のコミットログにタグを付ける方法
過去のコミットログにタグを付ける場合は、タグの名前付けの最後にコミットを入力します
ログの簡単な確認方法は
$ git log --oneline
コミット名も短縮されて表示されるので、それを利用します。
過去のコミットにタグをつける
$ git tag -a tagname -m 'comment' xxxxxxx
xxxxxxx がコミット名が入るところです。
タグをリポジトリにプッシュ
タグを付けたあとに共有する場合はタグをリポジトリにプッシュします
$ git push origin tagname
複数のタグをつけていて、まとめて送る場合は --tags
オプションをつけて push します。
$ git push origin --tags
タグを削除
タグを付け間違いやタイポしてしまっていた場合、まずはローカルのタグを削除します。削除のオプションは -d
$ git tag -d tagname
リポジトリに push してしまっている場合は一度リポジトリのタグを削除します。
$ git push origin :refs/tags/tagname
再び付け直す場合はタグを付ける方法をもう一度行うだけです。
リポジトリのタグを消す方法はコロンでタグを指定する他にも --delete
オプションの push でも削除できるようです。
$ git push --delete origin refs/tags/tagname