Skip to content

タグ・ブランチ

タグを付ける

タグ(TAG)とは,プロジェクト開発中の「ある時点のソースコード群に付けられる名前」のことで,git tagコマンドで任意に作成できる.

ローカルリポジトリ(作業コピー側)でタグをつける

例えば,現時点でのソースコード群にv_0.5という名前(タグ名)をつけるには

$ cd (プロジェクトディレクトリ)
$ git tag -a v_0.5 -m "TAG 0.5"
とする.-aでタグ名を指定し,-mでコメント(タグを付ける際のメッセージ)をつける.

Gitのタグには,軽量版(lightweight)と,注釈付き版(annotated)があるが,この演習では注釈付きタグの利用を勧める.ちなみに上の手順に従うと,注釈付き版のタグになり,チェックサム,タグを作成した人の名前・メールアドレス・作成日時・タグ付け時のメッセージ,などがちゃんと履歴に残る.

次のようにgit showコマンドを使うと,現在のタグデータ,及びそれに関連づけられたコミットを見ることができる.

$ git show v_0.5
...

なお,これまでにつけられた(既存の)タグ一覧を表示するには

$ git tag
v_0.5
とすればよい.タグが複数ある場合にはアルファベット順に表示されるので注意すること.


リモートリポジトリ(GitLab上に作ったリポジトリ)に反映させる

git tagでつけたタグ名を指定してpushする.

$ cd (プロジェクトディレクトリ)
$ git push origin v_0.5

ちなみに,

$ git push origin --tags

とすると,作業コピー側でつけたタグすべてが(一度の操作で)反映される.

「タグ」と「ブランチ」

以下は参考程度に.

タグ

タグとブランチの概念を一言で言えば,

  • タグ:ある時点でのソースのスナップショット.
  • ブランチ:あるソースの本流(trunkという)とは異なる,別の開発版

といったイメージである(多少の語弊はあるかも).

Gitはバージョン管理システムなので,コミットした際の各々の時点でソースが保存され,必要に応じて戻すことができる(これをロールバックという).その戻すための手掛かりは(Gitでは)「チェックサム」と呼ばれ,初回のコミット時から(Gitが適当につけた)ランダムな16進文字列で管理される.

しかしながら,自分が戻したい時点のチェックサムを把握している!などという人はまずいないので,人間でも覚えておけるような,何らかの文字列で管理する機能を実現しているのが「タグ」である.

ある時点のソースコード全体に対し,本来のタグのように文字列で目印をつける(先に示した手順を行った場合,v_0.5という名前でタグをつけたことになる).タグをつけた時点のソースコードが必要な場合,その「タグ名」を使ってソースを取り出せば良い.この機能は,開発においてはいわゆる安定版やリリース版を保持するためによく使われる.


ブランチ

ブランチとは,メインのソースコード開発を川の本流に例えるなら支流にあたる概念をいう.新たな機能をソースコードに付け加えたいが,失敗するかもしれないし,その一方で現在までのソースコードは保持し続けなければならない.このように,メインとなる開発を続けながらも,また別の新たな機能開発を並行して行いたい,といった場合に,「メイン版とは別にそれをコピーした別のリポジトリを作って管理」する.ただし,全く別々に管理する,のではなく,必要に応じてメインの変更を反映したり,新たな機能の開発が成功したら,メインに取り込みたい.こういった用途で作られるものが「ブランチ」である.