Gitでは区切りの良いバージョンに、それだとわかる目印をつけることができ、それを「タグ」と呼びます。
タグをつける
git tag [タグ名]
でタグをつけることができます。以下はv1.0.1
という名前のタグを作成しています。
$ git tag v1.0.1
タグが正常に作成されたかは、タグの一覧を表示し確認することができます。
$ git tag v1.0.1
注釈付きタグ
タグをつける際には、メモ書きを同時につけることもできます。
コマンドは git tag -am "[注釈]" [タグ名]
になります。
$ git tag -am "release 2016/04/01. bugfix ver" v1.0.2
注釈付きのタグの一覧を表示するにはgit tag -n
と打ちます。
$ git tag -n v1.0.2 release 2016/04/01. bugfix ver
もしこの書き方が気持ち悪い場合は git tag -a [タグ名] -m [注釈]
とすることも可能です。
過去のcommitにタグをつける
git checkout [チェックサム]
とした後にgit tag [タグ名]
としてももちろん良いのですが、
$ git log --pretty=oneline
34dd42238d58dfcece4a1a78a4ca6145c6f38725 4th commit.
a1019b6b2460a272dba1ad0ef0f5074baafc8fa6 2nd commit.
9c45bea8ac9274aefe0e53e2ca22c42802764cc3 Initial commit.
$ git checkout a1019b6b2460a272dba1ad0ef0f5074baafc8fa6
$ git tag foobar
タグを作成する際に、チェックサムを指定することでも同じことが実現できます。
$ git tag -a foobar -m "comment" a1019b6b2460a272dba1ad0ef0f5074baafc8fa6
トラブルシューティング
pushされない
通常、普通にpushしただけではtagはリモートに送信されません。タグをpushしたい場合には --tags
オプションを指定します。
$ git push --tags Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 233 bytes | 0 bytes/s, done. Total 2 (delta 1), reused 0 (delta 0) To /home/katsube/Work/test.git * [new tag] v1.0.1 -> v1.0.1 * [new tag] v1.0.2 -> v1.0.2 * [new tag] v2.0.0 -> v2.0.0
これまで送信されていないタグがすべて送信されます。