SlideShare a Scribd company logo
1 of 24
バージョン管理の
 ワークフロー


 Twitter ID: @add20
    2012/3/10
A successful Git branching model
A succcessful Git branching model とは、Git の開発モデルの内の一
つです。

Gitのブランチは自由に簡単に作ることができますが、自由度が
高いが故にかえってそれが混乱の元になることもあります。

このモデルに従ってバージョン管理をすることで、Gitによる
バージョン管理のワークフローの見通しがよくなります。
また、他者と協力して開発するときにも共通の指針となり大変便
利です。
メインブランチ

この開発モデルでは、中心となる二つの平行し
たブランチを軸に開発を進めていきます。




  master
  develop
masterブランチ

masterブランチは、製品として出荷可能な状態を常に反映するブラン
チです。ユーザはこのブランチの最新の安定板をcloneして使うことにな
るでしょう。

masterブランチを、安定したリリースバージョン専用のブランチとし
て使用することで、最新安定板ブランチの所在が明確になります。
developブランチ

develoブランチは、次のリリースのための最新の開発作業の変更を常に反映するブ
ランチです。
いわゆる開発版です。

developブランチは、各機能の統合ブランチとして使用します。このように決めてお
くことで、機能ごとに作ったブランチの統合先を忘れたりすることがなくなり、ト
ピックブランチのベースブランチを探す作業から解放されます。
メインブランチ

開発者は新しい機能をdevelopブランチにどんどん
追加して、developブランチが十分に安定してきた
ら、masterブランチにマージしてリリースします。
サポートブランチ
サポートブランチは、機能の追加、製品リリースの準備、製品に起き
た問題の解決などの用途に使用されます。


  Feature ブランチ

  Release ブランチ

  Hotfix ブランチ
Feature ブランチ

フィーチャーブランチ(またはトピックブランチ
とも言う)は、次のリリースや遠い将来に入るよ
うな新しい機能の開発をするのに使われる。




 分岐元:develop


 マージ先:develop
Feature ブランチ

$ git checkout -b feature-A develop
(feature-Aの実装が完了したら)


$ git checkout develop
$ git merge --no-ff feature-A
$ git branch -d feature-A
$ git push origin develop
Release ブランチ
リリースブランチは新しい製品リリースの準備をサポートします。
リリースのためのメタデータ(バージョン番号、ビルド日時など)
の準備をするためのブランチです。こういった細かい作業をリリー
スブランチ内ですることによって、developブランチをきれいに保ち
ます。


 分岐元:develop


 マージ先:develop と master
Release ブランチ
$ git checkout -b release-1.2 develop
(バージョン番号の変更などをする)


$ git checkout master
$ git merge --no-ff release-1.2
$ git tag -a 1.2

$ git checkout develop
$ git merge --no-ff release-1.2
$ git branch -d release-1.2
Hotfix ブランチ
ホットフィックスブランチは、安定板のmasterで致
命的なバグが見つかったときなどに使用します。
ホットフィックスブランチの分岐元はmasterです。
その極意は、developブランチで作業しているチー
ムメンバーが作業を続けられながら、別の人間が
製品の素早い修正を準備できることです。


 分岐元:master


 マージ先:develop と master
Hotfix ブランチ
$ git checkout -b hotfix-1.2.1 master
(バージョン番号などの変更とバグフィックスをする)

$ git commit -m “Fix a bug”
$ git checkout master
$ git merge --no-ff hotfix-1.2.1
$ git tag -a 1.2.1
$ git checkout develop
$ git merge --no-ff hotfix-1.2.1
$ git branch -d hotfix-1.2.1
feature                       release
                                                         branches         develop      branches            hotfixes   master




                                       Time
                                                                                                                              Tag




                                                                                                    Severe
                                                              Major                                bug fixed
                                                           feature for
                                              Feature                                                 for
                                                              next
                                                for                                                productio
                                              future                                                   n:

                                                                                    Incorporat
                                                                                    e bugfix in




                                                                                                                              Tag




                                                                                                        Start of
                                                                                                        release
                                                                                                       branch for
                                                                                                          1.0
                                                        From this point
                                                           on, “next
                                                        release” means



                                                                                                          Only




                                                                                      Bugfixes
                                                                                      from rel.                               Tag
                                                                                    branch may
                                                                                         be
                                                                                    continuously




                                                                                                         model
                                                                                        l Git br anching
                                                                                uccessfu
Author: Vincent Driessen
Original blog post: http://nvie.com/

                                                                              As
このブランチモデルは、

いいとは思うけど・・・
あんな長ったらしいフローは、

いちいち覚えていられないし・・・



 打つコマンドもたくさんあって
    ちょっと・・・
あるんです
git-flow


git-flow
 A successful branching model を補助してく
 れるGitプラグイン
git-flowのインストール

Macな方

 $ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL
 https://raw.github.com/mxcl/homebrew/
 master/Library/Contributions/
 install_homebrew.rb)"

 $ brew install git-flow
git-flowのインストール

UbuntuまたはDebianな方

$ apt-get install git-flow

上記以外のLinuxの方
$ wget --no-check-certificate -q -O - https://
github.com/nvie/gitflow/raw/develop/
contrib/gitflow-installer.sh | sudo bash
git-flowの主なコマンド

$ git flow init

$ git flow feature start A
$ git flow feature finish A

$ git flow release start 1.2
$ git flow release finish 1.2

$ git flow hotfix start 1.2.1
$ git flow hotfix finish 1.2.1
参考         参考というか、引用というか、コピペというか・・・




http://nvie.com/posts/a-successful-git-branching-
model/
http://keijinsonyaban.blogspot.com/2010/10/
successful-git-branching-model.html
http://www.oreilly.co.jp/community/blog/
2011/11/branch-model-with-git-flow.html
http://d.hatena.ne.jp/Voluntas/
20101223/1293111549
https://github.com/nvie/gitflow
ご清聴ありがとうございました。

More Related Content

What's hot

Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門Tomohiko Himura
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザktateish
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドktateish
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)pupupopo88
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Tomohisa Kusukawa
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
Subversionでバージョン管理を!
Subversionでバージョン管理を!Subversionでバージョン管理を!
Subversionでバージョン管理を!Ryuzo Yamamoto
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
Iocコンテナについて
IocコンテナについてIocコンテナについて
IocコンテナについてAkio Terayama
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)Akihiro Suda
 

What's hot (20)

Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
Subversionでバージョン管理を!
Subversionでバージョン管理を!Subversionでバージョン管理を!
Subversionでバージョン管理を!
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Iocコンテナについて
IocコンテナについてIocコンテナについて
Iocコンテナについて
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

バージョン管理のワークフロー

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n