LoginSignup
9
10

More than 3 years have passed since last update.

git branch と tag の使い分け

Last updated at Posted at 2020-07-21

git の branch と tag の使い分けが気になったので、Kubernetesプロジェクトを例に、整理してみた。プロジェクト毎の決め事だと思うので、必ずしもこの方法が正しいという訳ではない。一つの参考として見做して欲しい。

branch とは

ブランチとは、開発の本流から分岐し、本流の開発を邪魔することなく作業を続ける機能

tag とは

タグとは、歴史上の重要なポイントに印をつける機能です。よくあるのは、この機能を (v 1.0など) リリースポイントとして使うこと。

Kubernetesプロジェクトでの branch と tagの使い分け

このプロジェクトでは、全てのリリースの中で最新のコードが、masterにある。そして、各リリースで保守されている最新コードが、release-x.xx にある。例えば、git clone http://https://github.com/kubernetes/kubernetesgit clone -b release-1.19 http://https://github.com/kubernetes/kubernetes として ローカルにクローンしてビルドしても、動作するバージョンをビルドすることはできない。つまり、開発途上のコードだからである。

tagは、v1.18.4 や v1.18.5 など、それぞれの マイナーバージョンの下のパッチバージョンに対して、tag が設定される。この tag を利用してクローンするには、git clone -b <tag名> http://https://github.com/kubernetes/kubernetes としてクローンされる。 または マスターをクローンした後、git checkout -b v1.18.4 などとすることで、タグが付与された時点のコードを使用できる。これによって、リリースされた時点のコードを取得できる。

ブランチのリストを表示した様子

s-branch.png

タグのリストを表示した様子

s-tag.png

まとめ

branchは、その名の通り、分岐を意味する。そのため、branch を作成した後、branch に対して、更新を続けていくことができる。一方、tag を指定して branch のようにクローンやチェックアウトができても、しかし、tag に更新を加えることは出来ない、いわゆる スナップショットのような存在とみなせる。

参考資料

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10