タグ・ブランチ
タグを付ける
タグ(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
という名前でタグをつけたことになる).タグをつけた時点のソースコードが必要な場合,その「タグ名」を使ってソースを取り出せば良い.この機能は,開発においてはいわゆる安定版やリリース版を保持するためによく使われる.
ブランチ
ブランチとは,メインのソースコード開発を川の本流に例えるなら支流にあたる概念をいう.新たな機能をソースコードに付け加えたいが,失敗するかもしれないし,その一方で現在までのソースコードは保持し続けなければならない.このように,メインとなる開発を続けながらも,また別の新たな機能開発を並行して行いたい,といった場合に,「メイン版とは別にそれをコピーした別のリポジトリを作って管理」する.ただし,全く別々に管理する,のではなく,必要に応じてメインの変更を反映したり,新たな機能の開発が成功したら,メインに取り込みたい.こういった用途で作られるものが「ブランチ」である.