1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Gitはうまく使えてる?Gitのブランチモデルについて学ぼう

Pocket

はじめに

Gitを使いこなせていますか?

Gitは自由度が高いバージョン管理システムなので、いろいろな使い方ができます。
しかし、それぞれのエンジニアが闇雲に使っているとリポジトリが散らかってしまいます。
そのため、複数人でGitを使う際にはなんらかの「ブランチモデル」を導入するべきでしょう。

この記事では、Gitを使っているエンジニアの方のために、Gitの有名なブランチモデルである「git-flow」と「GitHub Flow」について解説していきます。

そもそもブランチモデルってなに?

ブランチモデルは、開発を進めるにあたって、どのようにブランチを活用していくかのルールです。
Gitでは、ブランチを分けることで、他のブランチに影響を与えずにコミットでき、複数人で別々の機能を開発する際などに有用です。
最終的には元のブランチにマージして変更を反映します。

それでは、git-flowとGitHub Flowという2つのブランチモデルについて見ていきましょう。

git-flowの6種類のブランチモデル

masterブランチ

masterブランチは、リリースしたバージョンをマージするためのブランチで、直接masterブランチ上で作業したり、直接コミットしたりすることはありません。

適切に運用されていれば、masterブランチから最新の安定リリースがいつでも取得できるでしょう。

developブランチ

developブランチは、リポジトリの中心となるブランチで、masterブランチ同様、直接ブランチ上で作業したり、コミットしたりすることはありません。

リポジトリを作成した時点で、masterブランチからdevelopブランチを作成しておきましょう。

featureブランチ

featureブランチは、新規機能の開発や機能の修正などの実際の開発作業を行うブランチです。

最も頻繁に利用することになるでしょう。
featureブランチは、開発に着手する際にdevelopブランチから派生させ、作業が終了したら、developブランチにマージして削除します。
機能ごとにブランチを用意することで、並行して機能を開発できます。

releaseブランチ

releaseブランチは、その名の通りリリース作業をするためのブランチです。

リリースの際には、付帯的な作業が伴うことが少なくありません。
そのため、リリース作業を行う場所として、developブランチからreleaseブランチを派生させ、リリース完了後にdevelopブランチとmasterブランチにマージして削除します。
この際、masterブランチにリリースタグ(バージョンなど)を打っておき、どのリリースなのかすぐにわかるようにしておきます。

hotfixブランチ

hotfixブランチは、緊急の修正をするためのブランチで、masterブランチから直接派生させます。

修正が無事完了したら、masterブランチとdevelopブランチにマージして削除します。
さらに、masterブランチにマイナーバージョンなどのタグを打っておきましょう。

supportブランチ

supportブランチは、旧バージョンをサポートするためのブランチです。

必須ではないので、古いバージョンをサポートしなければいけない場合に、該当バージョンのmasterブランチから派生させましょう。
supportブランチでは、サポートが終了するまで独立して保守を行います。

GitHub Flowの2つのブランチモデル

masterブランチ

GitHub Flowのmasterブランチは、git-flow同様、直接ブランチ上で作業したり、コミットしたりすることはありません。
git-flowでいうと、masterブランチとdevelopブランチを合わせたような使い方になります。

GitHub Flowでは、masterブランチが開発の中心です。

topicブランチ

topicブランチは、GitHub Flowで実際の作業を行うための唯一のブランチです。

新規機能の開発や修正など、すべてをmasterブランチから派生させた、個別のtopicブランチで行います。topicブランチでの開発が終了したら、masterブランチにマージして削除します。
なお、リリースはmasterブランチから直接行います。

git-flowとGitHub Flowのどっちがいいの?

ご覧のとおり、git-flowのほうがGitHub Flowよりもブランチの種類が多く、より厳格なブランチモデルになっています。
厳格さを求めないのであれば、より簡便なGitHub Flowを使うとよいでしょう。
ブランチの種類がたった2種類しかないので、ルールもすぐに覚えられます。

まとめ

Gitのブランチモデルについてお分かりになりましたか?

100%そのまま使わなくても、現場に合わせて使いやすいようにカスタマイズしてもOKです。
みんなが理解できる明確なルールを用意して、リポジトリをわかりやすい状態に保ちましょう。

あなたはどんなブランチモデルを採用しますか?

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る