2013-04-08
小規模チームでのGithub利用開発
気づくと1週間経っている恐怖(´ω`)
いまうちの会社ではGH:Eを導入するほどの規模でもないので、Githubのビジネスプランを使って開発を進めています。
僕自身gitへの造形がそこまで深くなく、どのように開発を進めていくかかなり迷いがありましたが、現在ある程度フローを決めてスムーズに開発が進むようになってきたので、それをまとめておきたいと思います。
ベースはgit-flow
Githubを導入するにあたって、gitを利用した開発フローについて調べたのですが、やはり最初に出てくるのがgit-flowでした。
一方で、実際にgitを現場で利用されている方々に聞くと、「リリーススピードが早いとgit-flowは厳しい」という声も聞かれました。
そこで、小規模チーム(現在は3人)で開発を行う際にgit-flowをベースとして利便性の高い開発フローを考えてみました。
リリースまではmasterとfeatureブランチのみ
まずリリースまでですが、masterブランチとgit-flowでいうfeatureブランチのみを利用し、masterからブランチを切って自分の担当分の開発をしてmasterにpull reqを送ることを繰り返します。
検証も各ブランチとmasterでやります。
リリース直前にdevelopブランチを切る
リリース直前、リリースバージョンのコードが固まればそこでdevelopブランチをmasterから切ります。
かっこいいのでmasterにtag打ったりしましたが、ソーシャルゲームのリリースペースだと大体その後はタグ打つ暇とかないですorz
developブランチ作成後はfeatureとhotfixブランチを作る
developブランチを作成した後は、ブランチを2種類に分けます。
まずfeatureブランチ。こちらは大きめの機能を追加で開発したり、イベントを作成するブランチで、最新のdevelopから分岐させます。
そして開発とブランチ上での検証を終えたらdevelopブランチにpull reqを送ります。
一方hotfixブランチですが、こちらはリリース後に出てくるbug fixが主になります。こちらは最新のmasterからブランチを切り、masterとdevelopの両方にpull reqを送ります。
新機能リリース時はdevelop→masterでマージ
リリース後は大体bug fixに明け暮れるものですが(ちゃんとテスト書きましょうねorz)それが終わって次はイベントのリリースだ!という風になればdevelopブランチからmasterブランチにpull reqを送りマージします。
利点
この方法の利点は、まずリリースペースが早くてもついていけることです。若干慣れるまで時間が必要ですが慣れれば十分リリースペースを上げられます。
そして、新機能については十分な検証時間をとりつつもhotfixは即時反映することができること、です。
僕が自分で考えた開発フローなので、もっといいのあるわ(゚Д゚)ゴルァ!!とか、それgit-flowでも出来るよ(実際出来ると思います)というご意見もあると思いますが、なかなか気に入っているので、スタートアップ等でまだ規模も大きくないしリリースペース早いし、というチームの方は導入してみてはいかがでしょうか!
- 106 http://b.hatena.ne.jp/
- 78 http://b.hatena.ne.jp/hotentry/it
- 20 http://reader.livedoor.com/reader/
- 10 http://t.co/xrCwfgWA3l
- 9 http://www.feedly.com/home
- 7 http://hatebu.straightline.jp/?http://b.hatena.ne.jp/hotentry/it
- 7 http://www-ig-opensocial.googleusercontent.com/gadgets/ifr?exp_rpc_js=1&exp_track_js=1&url=http://www.hatena.ne.jp/tools/gadget/bookmark/bookmark_gadget.xml&container=ig&view=default&lang=ja&country=JP&sanitize=0&v=26392bdca217641a&parent=ht
- 6 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/mandy_44/20130408/1365424923
- 5 http://b.hatena.ne.jp/entrylist/it
- 5 http://b.hatena.ne.jp/entrylist?of=60