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