SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
GFLS 入門
GFLS means GitFlow Like Style
© 2015 Takahashi Fumiki
GFLS ≒ GitFlow
GitFlowと似てる
いつ使うの?
• 商用環境でミスをするこ
とが許されない怖い環境
• 計画的・定時リリースが
行われる環境
• 複数の開発者が存在する
環境
• 課題がたくさん存在し、
それが必ずしも採用され
るとは限らない環境
• 「あの広告表示機能、やっ
ぱいらないわ」という環
境
• Githubじゃないので、
GithubFlowできない環境
基本ワークフロー
master
develop
feature
release
ロゴの差し替え
タブの追加
2015/03/12公開分
開発デプロイ
商用デプロイ
基本原則
• masterブランチはどのコミットを商用環境にリリースしても問題のないブラン
チである。
• developブランチは開発の起点となるブランチであり、ステージング環境相当
である。
• すべての開発はdevelopブランチから枝分かれしたfeatureブランチで行う。
• 1つのfeatureブランチは課題管理システムにおける1つの課題に相当する。
• masterおよびdevelopへのデプロイはreleaseブランチを作成することで行う。
• masterブランチに対してのみ、例外的にhotfixブランチを作成することが許さ
れる。
• すべてのブランチをpushする。
手順
• 課題に紐付いたfeatureブランチを作成する。名前はfeature/課題IDとする。各コミットには
課題への言及(およそのITSにはそういう機能がある)を含める。
• 必ず最新のdevelopブランチからfeatureブランチを作成する。
• リリースが決まったら、releaseブランチを最新のdevelopブランチから作成する。名前は
release/whatever-you-likeとする。
• releaseブランチに必要なfeatureブランチをマージしていく。競合が発生した場合は、
releaseブランチ上で解決する。
• マージする際は常にマージコミットを作成する。fast-forwardは行わない(他者から見て分か
りづらいため)
• releaseブランチが完了したらdevelopブランチからマージする。競合が発生した場合は
developブランチ上で解決する。
• developブランチはステージング環境相当であるため、この時点で確認は行われている。確認
して問題なければ、商用環境にリリースする。
• masterブランチにreleaseタグをつける。
よくある質問
Q.やっぱりいらない
develop
feature
release
ロゴの差し替え
タブの追加
2015/03/12公開分
このマージは
いらない
A. コミット取り消し
git reset - -hard
でブランチを戻してマー
ジしなおすか……
REVERT
git revert commit_id
で取り消し用コミット
を作成する
Q. 商用が真っ白に
master
develop
feature
release
ここで問題!
ヤベエェェ!
A. hotfixで治す
master
develop
hotfix developへのマージを忘れると、
masterとの差分が発生してしまう。
商用環境自体はmasterブランチを
一個戻せば治る。
Q.一部だけ必要に
develop
feature/hoge
BのJSがないと
開発が…
feature/fuga
A B C
A. Cherry Pick
develop
feature/hoge
feature/fuga
ただし、適切な粒度で開発され、細かくコミットされて
いることが条件。多くの場合、こんなに上手くいかない。
Aのコミットの
差分は来ない
A B C
Q. 放置したfeature
develop
release
feature
ずっと前に作ったのだが、たくさんの新機能が
すでにリリースされてしまった……
A. developをマージ
develop
release
feature
追いついた!
Q. テストサーバは?
master
develop
test
A. testブランチ作る
試したいfeatureブランチを集めたtestブランチを
都度作成する。いらなくなったら消す。
テストサーバに
デプロイ
Q. GithubFlowがよくね?
A. Github使うならYes
• Githubを業務に使ってない会社もあ
り、プルリクができない。
• コードレビューの体制がない場合もあ
る。
• テストコード? なにそれ? という
場所も多い。
終わり
すてきなGitライフを!

Más contenido relacionado

La actualidad más candente

LabVIEW NXG OOP Training
LabVIEW NXG OOP TrainingLabVIEW NXG OOP Training
LabVIEW NXG OOP TrainingYusuke Tochigi
 
日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build BitbucketShunsuke (Sean) Osawa
 
Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介y42sora
 
Git 10min
Git 10minGit 10min
Git 10mingon6109
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するためにShun Tsunoda
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkinsKatsuhiro Miura
 

La actualidad más candente (8)

恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 
LabVIEW NXG OOP Training
LabVIEW NXG OOP TrainingLabVIEW NXG OOP Training
LabVIEW NXG OOP Training
 
日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket日本語翻訳 How we use Bitbucket to build Bitbucket
日本語翻訳 How we use Bitbucket to build Bitbucket
 
Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介
 
第7回プログラミングカフェ_テキスト
第7回プログラミングカフェ_テキスト第7回プログラミングカフェ_テキスト
第7回プログラミングカフェ_テキスト
 
Git 10min
Git 10minGit 10min
Git 10min
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkins
 

Similar a GFLS入門 - GitFlowっぽいアレ-

一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechconDeNA
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみたhiroyuki koga
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編Yusuke Ito
 
Git勉強会資料
Git勉強会資料Git勉強会資料
Git勉強会資料Kenji Takei
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築CROOZ, inc.
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門kazuki kuriyama
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意MakotoItoh
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべKaoru NAKAMURA
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離Kazushi Kamegawa
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践日本マイクロソフト株式会社
 
Develop flow
Develop flowDevelop flow
Develop flowruneleaf
 
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ寛 吉田
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsShuhei Eda
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発GoAzure
 

Similar a GFLS入門 - GitFlowっぽいアレ- (20)

一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
Git勉強会資料
Git勉強会資料Git勉強会資料
Git勉強会資料
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離
 
Google Product
Google ProductGoogle Product
Google Product
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
 
Develop flow
Develop flowDevelop flow
Develop flow
 
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
 
Mrubyの始め方
Mrubyの始め方Mrubyの始め方
Mrubyの始め方
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 

Más de 文樹 高橋

あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ文樹 高橋
 
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする文樹 高橋
 
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメもう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ文樹 高橋
 
マルチパブリッシング プラットフォームとしてのWordPress
マルチパブリッシング プラットフォームとしてのWordPressマルチパブリッシング プラットフォームとしてのWordPress
マルチパブリッシング プラットフォームとしてのWordPress文樹 高橋
 
縄文時代の小説を書く(1)
縄文時代の小説を書く(1)縄文時代の小説を書く(1)
縄文時代の小説を書く(1)文樹 高橋
 
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!文樹 高橋
 
WordBench Tokyo Jan 30th, 2015
WordBench Tokyo Jan 30th, 2015WordBench Tokyo Jan 30th, 2015
WordBench Tokyo Jan 30th, 2015文樹 高橋
 
基本契約書ドラフト
基本契約書ドラフト基本契約書ドラフト
基本契約書ドラフト文樹 高橋
 
12 word pressカスタマイズ(プラグイン編)
12 word pressカスタマイズ(プラグイン編)12 word pressカスタマイズ(プラグイン編)
12 word pressカスタマイズ(プラグイン編)文樹 高橋
 
11 word pressカスタマイズ(テーマ編)
11 word pressカスタマイズ(テーマ編)11 word pressカスタマイズ(テーマ編)
11 word pressカスタマイズ(テーマ編)文樹 高橋
 
10 word pressをインストール
10 word pressをインストール10 word pressをインストール
10 word pressをインストール文樹 高橋
 
09 ソーシャルブックマーク(3)
09 ソーシャルブックマーク(3)09 ソーシャルブックマーク(3)
09 ソーシャルブックマーク(3)文樹 高橋
 
07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)文樹 高橋
 
06 ソーシャルブックマーク(1)
06 ソーシャルブックマーク(1)06 ソーシャルブックマーク(1)
06 ソーシャルブックマーク(1)文樹 高橋
 
05 はじめてのmy sql
05 はじめてのmy sql05 はじめてのmy sql
05 はじめてのmy sql文樹 高橋
 
04 filesystem include
04 filesystem include04 filesystem include
04 filesystem include文樹 高橋
 
03 var array_flow_func
03 var array_flow_func03 var array_flow_func
03 var array_flow_func文樹 高橋
 
02 はじめてのメール送信
02 はじめてのメール送信02 はじめてのメール送信
02 はじめてのメール送信文樹 高橋
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
05 再利用のためのインクルード
05 再利用のためのインクルード05 再利用のためのインクルード
05 再利用のためのインクルード文樹 高橋
 

Más de 文樹 高橋 (20)

あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
 
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメもう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ
もう自分で考えるのはやめよう! クリエイティブ・アウトソーシングのススメ
 
マルチパブリッシング プラットフォームとしてのWordPress
マルチパブリッシング プラットフォームとしてのWordPressマルチパブリッシング プラットフォームとしてのWordPress
マルチパブリッシング プラットフォームとしてのWordPress
 
縄文時代の小説を書く(1)
縄文時代の小説を書く(1)縄文時代の小説を書く(1)
縄文時代の小説を書く(1)
 
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
 
WordBench Tokyo Jan 30th, 2015
WordBench Tokyo Jan 30th, 2015WordBench Tokyo Jan 30th, 2015
WordBench Tokyo Jan 30th, 2015
 
基本契約書ドラフト
基本契約書ドラフト基本契約書ドラフト
基本契約書ドラフト
 
12 word pressカスタマイズ(プラグイン編)
12 word pressカスタマイズ(プラグイン編)12 word pressカスタマイズ(プラグイン編)
12 word pressカスタマイズ(プラグイン編)
 
11 word pressカスタマイズ(テーマ編)
11 word pressカスタマイズ(テーマ編)11 word pressカスタマイズ(テーマ編)
11 word pressカスタマイズ(テーマ編)
 
10 word pressをインストール
10 word pressをインストール10 word pressをインストール
10 word pressをインストール
 
09 ソーシャルブックマーク(3)
09 ソーシャルブックマーク(3)09 ソーシャルブックマーク(3)
09 ソーシャルブックマーク(3)
 
07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)07 ソーシャルブックマーク(2)
07 ソーシャルブックマーク(2)
 
06 ソーシャルブックマーク(1)
06 ソーシャルブックマーク(1)06 ソーシャルブックマーク(1)
06 ソーシャルブックマーク(1)
 
05 はじめてのmy sql
05 はじめてのmy sql05 はじめてのmy sql
05 はじめてのmy sql
 
04 filesystem include
04 filesystem include04 filesystem include
04 filesystem include
 
03 var array_flow_func
03 var array_flow_func03 var array_flow_func
03 var array_flow_func
 
02 はじめてのメール送信
02 はじめてのメール送信02 はじめてのメール送信
02 はじめてのメール送信
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
05 再利用のためのインクルード
05 再利用のためのインクルード05 再利用のためのインクルード
05 再利用のためのインクルード
 

GFLS入門 - GitFlowっぽいアレ-