タグとは?
特定のコミットを指定し、その時点の状態に名前をつけることができる。使うイメージとしては、キリの良いコミットに対して目印をつけます。
主にプログラムのバージョン管理に利用されます。

例えば、Next.jsのような一般的なOSSでもTagでバージョン管理されていたりします。
ローカルリポジトリ上でタグを作成
1 |
git tag タグ名 コミットハッシュ |
実際の業務では「git tag v1.1 6831137782abc」みたいな感じにタグ名にバージョン名を命名したりします。Semantic Versioningに沿うのが良いです。(もしくは日付を指定したりします。)
意図としてはリリース時点の状態(バージョン)を表現する際に使うが、コミットハッシュだとよくわからないのでこうしたりします。(他のエンジニアに対してコミットハッシュ683xxxなどをリリースしてくださいと言ってもよくわからないので)
ローカルリポジトリ上のタグ一覧を確認する
1 |
git tag |
タグをプッシュする。
1 |
git push origin タグ名 |
プッシュしないとリモートリポジトリにタグが反映されません。
タグ時点のコードを取得する。
1 |
git checkout タグ名 |
git logをするとタグ名で指定したコミットに遡れます。
ローカルのタグを削除
1 |
git tag -d タグ名 |
リモートのタグを削除
1 |
git push origin -d タグ名 |
GitHubのリリース機能
特定のタグに対してリリース情報、ソースコード(zip形式などでダウンロード可能)を付与することができます。ソフトウェアのリリース管理に利用します。

GitHubのリポジトリの上記にある機能です。

まずは任意のタグを作成します。(ただ、リリースと同時にタグも作成できるのでコマンドライン上で事前にタグを作る必要もありません。)

タグ名を選び、「Generate release notes」を選択すれば自動でリリースノートを作成できます。
PRを作っていればタグのコミット時点までのPRが一覧で載ります。
Change Log
Pull Requestが自動的に乗る。Pull RequestのタイトルがわかりやすいとChange Logの内容もわかりやすくなる。
Releaseの自動化ツール
- Relase Please(Google)
- semantic-release
- release-drafter
- conventional-github-releaser
- webpro/release-it
- azu/release-changelog
tagとreleaseの使い分け
tag
gitの機能で多用途。
用途
- github action上でタグがxxxだったらyyyする。
- 単純にバージョン管理に使用する。
release
githubの機能でtagに対してメタ情報(添付ファイルなど)を付与したもの。
この記事へのコメントはありません。