Upload
hiroyuki-koga
View
704
Download
3
Embed Size (px)
DESCRIPTION
社内向けに発表したもの
Citation preview
1まとめてみた
Git-flowについて
自己紹介
• 古賀裕行
• 株式会社アイアンドディー
• Ruby on Railsとかいろいろ
2
目次
• Git-flowの考え方
• Git-flow導入
• 機能実装開始からリリースまでの流れ
• ブランチの運用ルールまとめ
3
4~ 5つのブランチモデル ~
Git-flowの考え方
Git-flowとは
• ブランチの使い方を実践しやすくするツールのこと。
• ブランチ管理を一定のルールで運用
• リリースと開発ラインを分離
5
メインブランチ(特に重要で、なくてはならないブランチ。不老不死)
•masterブランチ
• developブランチ
6
① masterブランチ
• リリースしたソースコードを管理するためのブランチ。
• 開発者は、このブランチへのコミットは行わない。
• マージするタイミングは、リリース時のみ。
• 各バージョンの完全な状態を残すための tag を作成する。
7
ある時点までの変更履歴につける印
② developブランチ
• 次のリリースのための最新の変更が常に反映されているブランチ。
• 様々なブランチで行われた変更をまとめる役割を果たす。
8
サポートブランチ(必要に応じて作成するブランチ ※寿命あり)
• featureブランチ
• releaseブランチ
• hotfixブランチ
9
③ featureブランチ
• 主要な機能を実装するためのブランチ。
• 機能の実装やバグフィックスなど、タスクごとに
featureブランチを作成し、作業を行う。
大半の作業はここでOK
10
④ releaseブランチ
• リリースの準備を行うためのブランチ。
• リリース前に、このブランチを作成し、微調整を行う。
• releaseブランチを作成することで、リリース準備と
次のバージョンに向けた開発のコードを分けることができる。
11
⑤ hotfixブランチ
• すでに公開しているバージョン(つまりmasterブランチ)で
発生したバグを修正するブランチ。
• 緊急に対応しなければならないような、致命的な脆弱性や
サービスにとって致命的な不具合などを修正する。
12
13コマンドライン、G U I
Git-flow導入方法
コマンドライン編
Git-flowを利用するためのコマンドは2つのみ
$ apt-get install git-flow ## git-flowインストール
$ git flow init ## 初期化
14
GUI編
代表的なGitツール
• SourceTree
• TortoiseGit
• GitExtention
15
16機能実装開始から~リリースまで
リリースまでの流れ
複数人で開発する場合
①Aさんがローカル環境にブランチを作成
• $ git flow feature start hoge
17
メール配信機能作るぞー!
feature
develop
複数人で開発する場合
②Aさんがリモート環境にブランチを公開
• $ git flow feature publish hoge
18
Bさんと共有したい!
複数人で開発する場合
③Bさんがローカル環境にブランチを取得
• $ git flow feature track hoge
19
複数人で開発する場合
④Aさん、Bさんが開発を進めていく
• $git commit
• $git push
• $git pull
20
feature
develop
複数人で開発する場合
⑤機能実装完了後、Aさんがブランチを終了
$ git flow feature finish hoge
developブランチにマージ後、featureブランチ消滅
21
feature
develop
リリース作業
• ここからリリースに向けての作業開始
リリースまでの調整や軽微なバグの修正を行うreleaseブランチを作る。
$ git flow release start v3.0
22
ここで設定する名前がタグ名になります。
release
develop
リリース作業
• 完全にリリースできる状態になったら
releaseブランチを終了し、タグをつける
• $ git flow release finish v3.0
23
master
release
develop
Tag
V3.0
24
ブランチの運用ルールまとめ
ブランチ運用ルールまとめ
• 基本的に開発は、featureブランチで行う。
master、developブランチでの作業はしない。
• リリース後の致命的なバグの修正は、hotfixブランチで行う。
軽微なバグについては、featureブランチで行う。
25
26
おわり