26
1 まとめてみた Git-flowについて

Git flowについてまとめてみた

Embed Size (px)

DESCRIPTION

社内向けに発表したもの

Citation preview

Page 1: Git flowについてまとめてみた

1まとめてみた

Git-flowについて

Page 2: Git flowについてまとめてみた

自己紹介

• 古賀裕行

• 株式会社アイアンドディー

• Ruby on Railsとかいろいろ

2

Page 3: Git flowについてまとめてみた

目次

• Git-flowの考え方

• Git-flow導入

• 機能実装開始からリリースまでの流れ

• ブランチの運用ルールまとめ

3

Page 4: Git flowについてまとめてみた

4~ 5つのブランチモデル ~

Git-flowの考え方

Page 5: Git flowについてまとめてみた

Git-flowとは

• ブランチの使い方を実践しやすくするツールのこと。

• ブランチ管理を一定のルールで運用

• リリースと開発ラインを分離

5

Page 6: Git flowについてまとめてみた

メインブランチ(特に重要で、なくてはならないブランチ。不老不死)

•masterブランチ

• developブランチ

6

Page 7: Git flowについてまとめてみた

① masterブランチ

• リリースしたソースコードを管理するためのブランチ。

• 開発者は、このブランチへのコミットは行わない。

• マージするタイミングは、リリース時のみ。

• 各バージョンの完全な状態を残すための tag を作成する。

7

ある時点までの変更履歴につける印

Page 8: Git flowについてまとめてみた

② developブランチ

• 次のリリースのための最新の変更が常に反映されているブランチ。

• 様々なブランチで行われた変更をまとめる役割を果たす。

8

Page 9: Git flowについてまとめてみた

サポートブランチ(必要に応じて作成するブランチ ※寿命あり)

• featureブランチ

• releaseブランチ

• hotfixブランチ

9

Page 10: Git flowについてまとめてみた

③ featureブランチ

• 主要な機能を実装するためのブランチ。

• 機能の実装やバグフィックスなど、タスクごとに

featureブランチを作成し、作業を行う。

大半の作業はここでOK

10

Page 11: Git flowについてまとめてみた

④ releaseブランチ

• リリースの準備を行うためのブランチ。

• リリース前に、このブランチを作成し、微調整を行う。

• releaseブランチを作成することで、リリース準備と

次のバージョンに向けた開発のコードを分けることができる。

11

Page 12: Git flowについてまとめてみた

⑤ hotfixブランチ

• すでに公開しているバージョン(つまりmasterブランチ)で

発生したバグを修正するブランチ。

• 緊急に対応しなければならないような、致命的な脆弱性や

サービスにとって致命的な不具合などを修正する。

12

Page 13: Git flowについてまとめてみた

13コマンドライン、G U I

Git-flow導入方法

Page 14: Git flowについてまとめてみた

コマンドライン編

Git-flowを利用するためのコマンドは2つのみ

$ apt-get install git-flow ## git-flowインストール

$ git flow init ## 初期化

14

Page 15: Git flowについてまとめてみた

GUI編

代表的なGitツール

• SourceTree

• TortoiseGit

• GitExtention

15

Page 16: Git flowについてまとめてみた

16機能実装開始から~リリースまで

リリースまでの流れ

Page 17: Git flowについてまとめてみた

複数人で開発する場合

①Aさんがローカル環境にブランチを作成

• $ git flow feature start hoge

17

メール配信機能作るぞー!

feature

develop

Page 18: Git flowについてまとめてみた

複数人で開発する場合

②Aさんがリモート環境にブランチを公開

• $ git flow feature publish hoge

18

Bさんと共有したい!

Page 19: Git flowについてまとめてみた

複数人で開発する場合

③Bさんがローカル環境にブランチを取得

• $ git flow feature track hoge

19

Page 20: Git flowについてまとめてみた

複数人で開発する場合

④Aさん、Bさんが開発を進めていく

• $git commit

• $git push

• $git pull

20

feature

develop

Page 21: Git flowについてまとめてみた

複数人で開発する場合

⑤機能実装完了後、Aさんがブランチを終了

$ git flow feature finish hoge

developブランチにマージ後、featureブランチ消滅

21

feature

develop

Page 22: Git flowについてまとめてみた

リリース作業

• ここからリリースに向けての作業開始

リリースまでの調整や軽微なバグの修正を行うreleaseブランチを作る。

$ git flow release start v3.0

22

ここで設定する名前がタグ名になります。

release

develop

Page 23: Git flowについてまとめてみた

リリース作業

• 完全にリリースできる状態になったら

releaseブランチを終了し、タグをつける

• $ git flow release finish v3.0

23

master

release

develop

Tag

V3.0

Page 24: Git flowについてまとめてみた

24

ブランチの運用ルールまとめ

Page 25: Git flowについてまとめてみた

ブランチ運用ルールまとめ

• 基本的に開発は、featureブランチで行う。

master、developブランチでの作業はしない。

• リリース後の致命的なバグの修正は、hotfixブランチで行う。

軽微なバグについては、featureブランチで行う。

25

Page 26: Git flowについてまとめてみた

26

おわり