はじめに

git における tag はコミットの別名(alias)である。なので、tag はコミット単位で設定される。 tag はコミットに対してわかりやすいように、例えば version などの意味を持った値が設定される。(v0.1, v0.2など) よくある操作を次にまとめる。

作成(CREATE)

コメントなしでシンプルな tag を作成する場合は次の通りになる。

1
git tag <tag>

コメント付きで tag を作成する場合は以下となる。

1
git tag -a <tag> -m '<Comment>'

この時、コミットを指定しなかった場合は、現在のブランチの最新のコミットに対して設定される。 後から特定のコミットに対して tag を設定したい場合は、git log などで commit の id を確認し指定すれば良い。

1
git tag -a <tag> -m '<Comment>' Commit

参照(READ)

tagの一覧を表示する。

1
git tag

特定の tag の内容を確認する 

1
git show <tag>

更新(UPDATE)

1 コミットに対して、tag を複数設定することができる。なので一時的に tag を追加し、その後古い tag を削除することで更新できる。

1
2
$ git tag <newtag> <oldtag>
$ git tag -d <oldtag>

削除(DELETE)

1
git tag -d <tag>

リモートリポジトリとの Sync

上の状態では tag はあくまでローカルの情報に過ぎないため、github などのリモートリボジトリと tag 情報を共有するためには、push or pull する必要がある。 また注意したい点として、通常のファイルの push / pull とは異なるコマンドの実行が必要となる。 ローカルの tag をリモートリポジトリに共有するためには次のコマンドを実行する。

1
git push <RemoteRepository> <tag>

なので、デフォルトの origin へ push する場合は次のコマンドを実行することになる。

1
git push origin <tag>

特定の tag でなく全ての tag を push したいときもある。そういうときは、 –tags をつける。

1
git push origin --tags

逆にリモートリポジトリから pull するときは、次のコマンドで良い。

1
git pull <RemoteRepository> --tags

また、リモートリポジトリから tag の情報を削除するときにも注意が必要。git tag -d で削除した後、次の方法で push する。

1
git push <RemoteRepository> :<DeletedTag>