git tagって?

業務においてgittagを使う場面があったのですが、あまりどんなものか分からず使っていました。

そのため、今回はtagについて備忘録として記事に残すことにしました。

git tag とは?

git tagとは、コミット履歴上の重要なポイント(コミット)に印をつける機能。

いつ使うの?

v1.0などのリリースポイントでtagを使うことがよくあるそうです。

各リリースポイントでtagをつけておくことによって、あるバージョンで起こったバグを再現したい!といった際に、 そのバージョンのtagにチェックアウトするだけで簡単にバグの検証をすることができます。

また、どのバージョンで起こったバグか分からない!といったときでも、tagを利用して各バージョンの動作検証をすることで、どのバージョンでバグが発生したのかを見つけることができます。

その他にも以下のメリットがあるそうです。

  • Github上で、タグ付けした時点の圧縮ファイルをダウンロードできる
  • Github上で、タグがあるとリリースノートを作成できる
    • 前回のタグと比較して差分からリリースノートを自動生成できるらしい(詳しくはこちら
  • どのコミット時点で本番リリースしたのか参照しやすくなる

コマンド一覧

タグの作成

タグには軽量タグと注釈付きタグがある。

  • 軽量タグ

    • 変更のないブランチのようなもので、特定のコミットに対する単なるポインタでしかない
    • タグ選択状態でコミットしても、タグが指すコミットの位置は変わらない(注釈付きタグも同様)
    • $ git tag <タグ名>でタグを作成
  • 注釈付きタグ

    • タグ付けした人の情報、日時、コメントも格納される。
    • $ git tag -a <タグ名> -m <コメント>でタグを作成

タグについての詳細を後から確認するためにも、基本的には注釈付きタグを使うのが良さそうですね。

注意点として、コミットを指定せずにタグを作成した場合は、現在のブランチの最新のコミットに対してタグが付与されます。

後からタグを付与する

あるコミットにタグを付与するのを忘れていた場合は、そのコミットハッシュを指定してタグを作成すれば大丈夫です。

$ git tag -a <タグ名> -m <コメント> <コミットハッシュ>(例:9fceb02)

タグの表示

以下のコマンドでタグの一覧を表示する。

$ git tag

タグのデータとそれに関連づけられたコミットを見るには、showコマンドを使う。

$ git show <タグ>

軽量タグの場合は、タグを付与したコミットに関する情報のみ表示される。

注釈付きタグの場合は、タグの作者、作成日時、作成時のコメント + コミット情報が表示される。

以下に注釈付きタグをshowした際の結果を示す。(s4は適当につけたタグ名なので気になさらず)

1
2
3
4
5
6
7
8
$ git show s4
tag s4
Tagger: morikann <mrknt0088@gmail.com>
Date:   Mon May 22 21:21:24 2023 +0900

タグのコメント

~ 以下にコミット情報が表示 ~ 

タグをリモートにプッシュ

デフォルトではgit pushコマンドは、タグをリモートに送らないので、タグをリモートにpushすることを明示する必要がある。

以下のコマンドを実行することでタグをリモートにpushできる。

$ git push <リモート名> <タグ名>

例:$ git push origin v1.0

多くのタグを一度にプッシュしたい場合は、git pushコマンドのオプション--tagsを使用する。 これは、ローカルのタグの中でまだリモートに存在しないものをすべて送る。

$ git push origin --tags

リモートのタグをローカルに反映

誰かが作ったリモートのタグをローカルに反映するには以下のコマンドを使う。

$ git fetch --tags

まとめ

タグについて完全に理解した

次はGithub上からタグを利用してリリースノートの自動生成とかやってみたい!

参考

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy