第50回Workshop 「Gitflowワークフロー」

第50回Workshop 「Gitflowワークフロー」

第50回Workshop

Gitワークフロー

2017年3月4日(土)、リゾームではついに50回目になるワークショップを開催しました。
今回のお題はGit。ブランチを使ったソース管理について、エンジニア同士で技術共有を行いました。
リゾームの開発現場ではGitやSVNのようなバージョン管理システムを日常的に使っていますが、
プロジェクト規模や参画メンバー数、状況に合わせて運用方法は変わってくるもの。

今回はお客様先のIoTサービス開発プロジェクトに参画しているエンジニアが、
Gitワークフローの使い方をお客様先の事例と共にプレゼン。
普段Gitでのバージョン管理を行っていてもGitflowワークフローを利用したことのないエンジニアにとっては、
今後に活かせる共有会でした。

git

Gitflowワークフロー

大規模プロジェクト管理を行うGitフロー

複数名のチームメンバーが開発する際には、各エンジニアの作成したプログラムファイルの”マージ”(統合)を行う際にトラブルが起こりがち。マージするまでは動いていたプログラムが動かない、他のエンジニアが担当するプログラムから参照しているソースを削除してしまった、同一ファイルの書き換えによる競合…など、細かな修正点が出てきます。

Gitflowワークフローでは、本番リリースに用いる”Master”ブランチを主軸に、開発環境として”Develop”ブランチを作成。エンジニアごと、または機能ごとに”Feature”ブランチを作成していき、開発が完了したものからプルリクエストを送信してDevelopブランチにマージしていきます。
Developブランチでテストまで実施し、問題なくリリースできると確認できた場合に”Release”ブランチを作成。Releaseブランチでは、微細なバグ修正やドキュメント生成、その他リリース作業に伴うタスクだけを行うことができます。
リリース準備が完了した後、ReleaseブランチはMasterブランチにマージされ、本番公開となります。同Releaseブランチは、開発環境であるDevelopブランチにも統合します。

workshop2

Gitflowワークフローを用いることで、開発者は自分自身の担当するFeatureブランチに対してのみプッシュ、プルすることになり、開発完了後は他者のチェックを経てDevelopブランチにマージされていくので競合が起こる頻度を減らすことができます。また、競合や障害が発生した場合にも、Feature単位まで切り戻しを行うことが容易になるので、スムーズに原因確認を行うことが可能になります。

ワークフロー図には記載していませんが、リリース後に障害メンテナンスを行う際には、提供中のMasterブランチからメンテナンス用に”Hotfix”ブランチを作成し、直接修正を行います。修正後はMasterブランチ、Developブランチ、またはリリース作業中のReleaseブランチへマージします。
このパターンは1名で修正完了できる程度の軽微な修正を行う場合に発生し、通常の改善運用業務のように計画を立てて進行する機能追・変更を行う場合には、通常通りのワークフローを行います。

Gitflowワークフロー以外にも、中央管理型ワークフロー(SVNと同じような環境)や中央管理型ワークフローを応用したフィーチャーブランチワークフローなど、Gitブランチを有効活用するワークフローがいくつかあるので、プロジェクトの状況に合わせて取り入れるのが、無理なく効率的に開発を進めるコツだと思います。

※Gitflowワークフローについての詳細は別途nvie.comに掲載されていますので、そちらをご参照ください。

workshop7

50回目の記念に。

毎月開催しているワークショップも今回で50回目。節目のお祝いに、参加メンバーでプレゼント交換を行いました。
主催の平田をはじめ、システム部部長の大塚、同じくシステム部部長の宮森、入社2年目の若手メンバーなど普段は異なるプロジェクトで仕事をしているメンバーでプレゼントを交換するような機会はそうそうありません。アメ横で買った求肥や落花生、スタバの東京タンブラー、Tera VR BOXなど、予算2,000円の中思い思いの品を持ち寄りました。男性同士の交換ということもあり、実用性重視の靴下が被ってしまったのはご愛嬌です。

ワークショップはこれまで毎月1回ずつ開催してきて、ようやく50回目です。第100回までの50ヶ月間(4年ちょっと!)もいろんな技術を共有して、スキルアップしていけたらいいですね。次回以降のワークショップも、定期的にこちらでお知らせしますので、お楽しみにお待ちください!

workshop4
workshop5
workshop6

LEAVE A REPLY

*
*
* (公開されません)