導入
コミットID(a1b2c3d のような英数字)は正確ですが、人間には覚えられません。「ここがリリースした版」「ここまでが v1.0」――そんな 節目のコミット に人間に分かる名前を付けるのが git tag です。ブランチと違ってタグは動きません。一度付けたら、ずっと同じコミットを指し続ける しおり です。
説明
まずリポジトリを作り、コミットを1つ積んでからタグを付けてみます。
git init
git add .
git commit -m "First release"
git tag v1.0
git tag を引数なしで打つと、付いているタグの一覧が出ます。
git tag
開発を続けて、コミットが先に進んだとしましょう。
echo "console.log('v2');" >> app.js
git add app.js
git commit -m "Add new feature"
git log --oneline
git log --oneline を見ると、tag: v1.0 が 最初のコミットに付いたまま 動いていないことが分かります。ブランチ(main)はコミットするたびに先へ進みますが、タグはその場に残る――これが両者の違いです。
flowchart LR
C1["First release<br/>(tag: v1.0)"] --> C2["Add new feature<br/>(main)"]
過去のコミットにあとからタグを付けることもできます。コミットIDや HEAD~1 を後ろに添えます。
git tag v0.9 HEAD~1
タグ名は git diff v1.0 のように、コミットIDの代わりとしてそのまま使えます。実務では「リリースのたびに v1.2.3 形式のタグを打つ」のが定番で、GitHub のリリース機能や、第5章で学ぶ CI/CD の「タグを打ったらデプロイ」という自動化もこのタグが起点になります。
やってみよう
コミットを作って git tag v1.0 でタグを付け、git tag で一覧に出ることを確認しましょう。さらにコミットを積んでから git log --oneline を見て、tag: v1.0 が最初のコミットに残り続けることを確かめてください。
演習
現在のコミット(HEAD)に v1.0 タグ を付けてください(先にコミットを1つ作っておきましょう)。
ヒント1を見る
タグ付けは git tag <名前> です。git tag v1.0
ヒント2を見る
付いたかどうかは git tag(一覧)や git log --oneline の tag: v1.0 で確認できます。