LoginSignup
6
6

More than 3 years have passed since last update.

git flowについて

Last updated at Posted at 2020-06-05

はじめに

gitの運用で利用されるgit flowについてまとめます。

git flowって何?

gitの機能であるブランチを活用したgitの開発手法です。

複数人による開発をする時に、運用ルールを決めずにgitを採用してしまうと、コンフリクトが頻発したりmergeミスが発生したりしてしまいます。
そのような問題を回避し、最大限にgitを活用することができるのがgit flowです。

お恥ずかしながら、今回調べ直して知ったのですが、元は、ディベロッパーのDriessenさんが、ご自身のブログで公開した「A successful Git branching model」という記事から生まれたアイデアだそうです。
日本語訳がありました

5つのブランチ

詳細な説明は後述します。

master
リリースしたデータを置いておくブランチ。

develop
開発をおこなうためのブランチ。

release
リリース前に準備、微調整をおこなうブランチ。

feature
開発をおこなうためのブランチ。個々の機能の実装やバグの解決をおこなう。

hotfix
リリースされているデータに、緊急の修正対応をするためのブランチ。

各ブランチの詳細・説明

メインブランチ

master

サイトとして完全なもの。
masterブランチと公開された本番環境が同じソースということが多い。
前職ではmasterにmergeをすると本番環境に反映されていた。(本番環境=master)
mercurialではdefaultと同じ。

develop

開発中(更新案件なら次のリリース分)のものが完全な状態で反映されている。
開発作業の主軸となるブランチであり、各開発者が新規作成・修正したソースがこのブランチに集まる。
更新案件でいうと、masterとの差分は、「次のリリース」分のみ。

サポートブランチ

機能の追加や修正・準備、何かあったらすばやく修正するブランチをまとめて「サポートブランチ」といいます。

release

developでの開発作業が完了後、リリース時の微調整を行うブランチ。
releaseブランチはdevelopブランチから作成される。

分岐元:develop
marge先:developとmaster

feature

主に新機能などの開発・修正を行うブランチ。
ブランチ名は「feature/news」など、feature/の後に実装する機能などを記載する。
リリース前に新機能などににバグなどが見つかった場合、developからfeature/bug_xxなど修正用のブランチを切り、修正が終わったらdevelopにmergeする。
デバッグが終わるまでdevelopにmergeするのはNG。

分岐元:develop
marge先:develop

hotfix

リリース後に不具合が見つかったら作成されるブランチ。
(作成されない方がいいブランチでもある・・・)

分岐元:master
marge先:developとmaster

全体像

グループ 1.png

まとめ

  • 分岐元やmerge先をミスってしまうと、大事故(そして面倒)になるので、気をつけること!
  • LP1ページなどではここまでの運用はいらないと思いますが、小規模〜中規模案件で少しずつ慣れておくといいと感じます。
  • master, release, develop, feature, hotfixの各ブランチの役割を把握・運用することが、 案件をスムーズに進めるための重要だと思います。

参考にさせていただいた記事

記事を書くにあたり、改めて勉強になりました!
Atlassian Git Tutorial

6
6
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
6
6