Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
gitのブランチ戦略 Takashi Abe Mynet Inc. 24/02 2015
Slide 2
Slide 2 text
git初心者あるある
Slide 3
Slide 3 text
ブランチの子供が出来過ぎ てマージ困難
Slide 4
Slide 4 text
いつの間にかmasterに取り 込まれるコミット
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
ブランチ戦略決めましょう
Slide 7
Slide 7 text
ブランチ戦略とは 新機能開発やリリースなど、各用途専用のブランチを用 意する 各ブランチに明確な意図を持たせて混ざらないように することで複数人での開発をやりやすくする
Slide 8
Slide 8 text
メジャーなブランチ戦略 git-flow 5種類のブランチを使って機能開発、リリース、hotfix などの役割を明確に分けている 堅牢なモデルだが慣れないうちは煩雑 github flow masterと機能開発ブランチのみを持つ masterはすぐデプロイするワイルドなモデル
Slide 9
Slide 9 text
git-flow
Slide 10
Slide 10 text
使用するブランチ develop 開発安定版ブランチ。featureブランチなどはここにマージされる feature 機能開発用ブランチ。機能開発やバグフィックスなどの開発を機能ごとに開発する ためのブランチ。最終的にdevelopにマージされる release リリース用ブランチ。リリース時にdevelopから作成される。リリース作業中でも developに対する変更を行えるようになる。 master 安定版ブランチ。リリースを終えたreleaseブランチからmasterにマージされる。 hotfix 緊急のバグ修正ブランチ。masterから作成され、releaseブランチを介さずにそのま まmasterにマージされる。
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
feature
Slide 13
Slide 13 text
release
Slide 14
Slide 14 text
hotfix
Slide 15
Slide 15 text
git-flowの特徴 releaseやhotfixのための手順が明確に定められていて プロダクションに上げるコードを堅牢に保つことが出来 る 使用するブランチが多いため手順が煩雑
Slide 16
Slide 16 text
github flow
Slide 17
Slide 17 text
使用するブランチ master 安定版、リリース用ブランチ。featureブランチは全て masterにマージされ、即座にデプロイ対象になる。 feature 機能開発用ブランチ。masterから作成され、そのまま masterにマージされる。
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
github flowの特徴 使用するブランチが最小限で理解しやすい masterを常にデプロイ可能な状態にしないといけない コードレビュー CI
Slide 20
Slide 20 text
弊チームのブランチ戦略
Slide 21
Slide 21 text
やりたいこと
Slide 22
Slide 22 text
やりたいこと 規模の大きい新機能など、複数人で1つの機能を作りた い リリースする機能は絞る場合がある リリース前にQA環境でQAしたい
Slide 23
Slide 23 text
git-flowのアレンジ
Slide 24
Slide 24 text
featureブランチの亜種を2 つ追加した
Slide 25
Slide 25 text
追加したfeatureブランチ feature-develop 1つの大きな機能における開発安定版。developから 作成され、feature-developから更にfeatureブランチ を作成する。featureブランチはfeature-developブラ ンチにマージされる。 QA QA用ブランチ。developから作成され、次回リリースに 盛り込むブランチを全てマージする。ここにはfeature- developブランチが含まれる。
Slide 26
Slide 26 text
機能開発フロー developブランチからfeature-developブランチを作成 feature-developブランチからfeatureブランチを作成 featureブランチをfeature-developブランチにマージ
Slide 27
Slide 27 text
リリースフロー feature-developブランチをQAブランチにマージ QA中の修正は全てQAブランチにマージ QAが完了したらreleaseブランチにマージ
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
tips
Slide 30
Slide 30 text
ブランチを作るとき ブランチ作成時は常にリモートブランチから作成するこ とを意識する git checkout -b feature/a origin/develop GitHubなどのGUIフロントエンドが使えればそれでも 古いローカルブランチから作成することによってリモート の最新コミットが取り込まれない コンフリクトの原因になる
Slide 31
Slide 31 text
CUIでやる SourceTreeなど優秀なGUIツールを使うのもいいが、git の構造を知るにはCUIでやると捗る ローカル/リモートリポジトリの違い working copy,index,ローカルリポジトリの違い 慣れるとGUIでやるよりも捗る(と思う)