
どうもこんにちは!
サバ缶(@tech_begin)です。
私の業務では、月に一度のリリース作業があります。
開発してきた機能を実際にユーザに提供するための公開作業です。
身近なもので言えば、GooglePlayやAppStoreでアプリ公開をすることです。
このリリース作業では、バージョン番号をタグとして付与します。
そのタグ付けの方法を備忘録がてら紹介したいと思います!
なぜGitでタグをつけるのか
Gitには「タグ」機能があり、コミットをすぐに参照できるよう、わかりやすい目印をつけます。
もしこれが無いと、「前回のリリースは5月10日だから…この辺りかな」と遡って探さなければなりません。

ブランチにリリース番号を付ければいいんじゃない?
ブランチですと、マージした際にブランチが移動してしまいます。
しかしタグはコミットに対して付与するので、固定されるため目印として役立つのです!
タグの種類
タグには2種類あります。
- 軽量タグ
- 目印をつける
- 注釈付きタグ
- 目印をつける
- コメントをつける
タグをつける方法
今回は、SourceTreeを使用してタグを付与していきます。
以下のようなブランチの状態になっているとしましょう。

masterブランチを「1.0.0」バージョンとしてタグを付けると仮定します。

ブランチを右クリックし「タグ」を選択します。
すると、以下のようなダイアログが表示されるので、バージョンを入力します。

入力すると、追加ボタンが活性化するので、押しましょう!

これでタグの作成は完了です👍

タグを付けた後の注意点
実は落とし穴があり、このままでは他の人には見えない状態になっています。

コミットと同じで、プッシュしないといけません!
SourceTreeであれば画面左上のプッシュボタンを押し「すべてのタグをプッシュする」にチェックを入れることで解決します!

その際、プッシュしないブランチを選択していないか注意しましょう。
【補足】タグの仕組みについて
Gitで扱うすべてのものは、「チェックサム」で管理されています。
誤り検出符号の一つで、データ列を整数値の列とみなして和を求め、これをある定数で割った余り(余剰)を検査用データとするもの(e-Words引用)。
要するに、データが正しいものかチェックするための値です。
GitではSHA-1ハッシュを使用しています。
このチェックサムを使うことで、ファイル名ではなく、ハッシュ値によって管理できます。
もちろん、コミットもチェックサムです。
タグはこのチェックサムを保持することで、目印が変わらないようにしているんですね。