SlideShare a Scribd company logo
git-flowと
プロジェクト運営



            1
5秒で分かるあらすじ

• プロジェクトで困っていた
• git-flowをカスタマイズして取り入れた
• 並行作業と振り返りが楽になった

                          2
2秒で分かるgit-flow


• 開発者も管理者も幸せになれる、
 ブランチとマージの活用ガイドライン




                     3
注意
•   「gitとは何か」は説明しません

    •   VCS(バージョン管理システム)の1つ

    •   ブランチ管理が超強力

    •   多人数の開発にもスケール

•   正式なgit-flowはチーム運営の指針も含んでますが、
    今回は説明しません

    •   気になる方は原典へ


                                  4
抱えていた問題
• こんがらがったソースコード
 • 作業の度に全機能調査
 • 修正が複数領域に
• 他の開発者(非git)と並行作業
• 他サービスへの移植も頻繁に発生…
               http://mrg.bz/iiF6bR

                                      5
なんとかしたい
• 1つの作業に集中したい
• 安心して複数作業を進めたい
• プロジェクトレビューの準備を楽にし
 たい

• でも楽をしたい ← 大事
                      6
そこでひとまず



          7
ソース管理にGitを使おう

• 今やVCSは必需品
  • 作業も慣れている←手間にならない
• gitにも慣れている
  • 多人数(多タスク)にもスケール
 「うーん、もう少し活用できないか調べてみるか」



                           8
あれ、



      9
?時々出てくる
「git-flow」って何?


                10
どんなものか
調べてみた


         11
Git力


...... !



                  12
feature
                                                             release branches
                                branches           develop                                 hotfixes   master




                                                                                                               Tag




         Time
                                                                                                               0.1



                                    Major                                    Severe bug
                                  feature for                                  fixed for
                 Feature
                                 next release                                production:
                for future                                                    hotfix 0.2
                 release

                                                             Incorporate
                                                               bugfix in
                                                               develop




        「git-flow」
                                                                                                               Tag
                                                                                                               0.2



                                                                                    Start of
                                                                                    release
                                                                                   branch for
                                                                                      1.0

         A successful Git branching model
                             From this point on,
                                “next release”
                             means the release
                                  after 1.0


http://nvie.com/posts/a-successful-git-branching-model/                              Only
                                                                                   bugfixes!




                                                             Bugfixes from                                     Tag
                                                              rel. branch
                                                                may be                                         1.0
                                                             continuously
                                                             merged back
                                                             into develop




                                                                                                                     13
git-flow??
• 「ブランチ管理の戦略・ガイドライン」
  何をしたいのか

  何をしているのか

  何をしたのか、

 が分かりやすくなる


                       14
git-flow?
• ブランチ管理を一定のルールで運用
• ブランチ元・マージ先を目的別に制限
• リリースと開発ライン、作業とを分離

  作業が混ざらない


                      15
説明しよう



        16
2系統ブランチと命名規則

       命名規則             役割        寿命
                   対外ブランチ。
         master                    -
メイン                マイルストーンの記録

ブランチ               開発用。トピックブランチ
        develop                    -
                   の生成/合流対象
        feat/...   機能追加用          作業開始
サポート
       (hot)fix/... 不具合修正用         ∼
ブランチ    release    リリース準備用        作業完了


  常にブランチ上で作業を進める
                                         17
メインブランチ



          18
master
                                       master   (branches)

•   プロジェクト開始から完了まで
                                α1
    生存

•   いつでもリリース可能な状態               α2

    •   develop(release)のマージ先

•   タグ=マイルストーン : α, β1, β2,…
                                β1


    masterの状態=プロジェクトの進          β1.1




        ブランチ元     最初から存在
        マージ先      -

                                                             19
develop
                              develop   feat/A feat/B   fix/a

•   プロジェクト開始から完了ま
    で生存

•   開発中のバージョンを管理

    •   トピックブランチはdevelop
        から作成し、developに合流

•   developでは作業しない

        ブランチ元   -
        マージ先    master(マージ後も存在し続ける)

                                                                20
サポートブランチ



           21
feat/… and fix/…
                                   develop   feat/*,fix/*

•   機能実装(不具合修正)開始∼完了ま
    で生存

    •   実際に作業を行うためのブランチ

•   developからブランチ作成

    •   実装完了時はdevelopにマージ                        ×
        終わったらブランチ削除


        ブランチ元   -
        マージ先    develop(マージ後は削除)

                                                            22
hotfix/…
                                            master   hotfix/* develop

•   修正開始∼修正完了まで生存                  α1

•   臨時作業をこなすためのブランチ
                                          不具合発見
    •   リリース直後の不具合修正

•   masterからブランチ作成
                                                       ×
        実装完了時はdevelop/masterにマージ
                                   α1.1
        終わったらブランチ削除


        ブランチ元    master
        マージ先     develop, master(マージ後は削除)

                                                                        23
マージのルール
• mergeは必ずnon fast-forwardで!
 • デフォルトはfast-forward
    git merge <ブランチ名> --no-ff


•    あるいは設定でデフォルト変更

    git config --global --add merge.ff false




                                               24
git-flowを適用すると

マイルストーン:masterを見るだけ

作業は常にdevelopからのブランチで

• 1機能/修正に集中出来る
管理を分けられる(スケールする)



                       25
なるほど便利そう



           26
だけど



      27
オリジナルのスタイル
≠対象プロジェクトのスタイル



                 28
そこでテーラリング



            29
1. ブランチをタグとして残す

2. satelliteブランチで他者ソースを
 管理




                          30
1.ブランチはタグで残す
• feature,hotfixブランチのマージ後、ブラ
  ンチ→タグに張り替える

 git branch -d feat/lpr && git tag feat/lpr



  あとから履歴が追いやすい
 例:実施した修正作業の数をカウント
 git tag -n | grep hotfix/<旧ブランチ名> | wc -l


                                              31
2.他開発者の歴史を区別


• メインブランチを1本追加
 • メインブランチ
 • サポートブランチ
  サテライトブランチ



                 32
satelliteブランチ
                                 develop   satellite
•   プロジェクト開始から完了まで生存                                    他者
                                                       の更新

•   他開発者(非git)の作業を追跡

    •   子ブランチは特に作らない
                                                        他者
•   satelliteにコミット後、すぐdevelopへ                         の更新

    マージ

        develop&各作業で最新を追跡可能


        ブランチ元   (他開発者のVCSからクローン)
        マージ先    develop(マージ後も存在し続ける)

                                                             33
このルールを適用すると
•   マイルストーン:masterを見るだけ

•   作業は常にdevelopからのブランチで

    •   1機能/修正に集中出来る

        終わった作業はタグでトレースできる

    他開発者の作業状況:satelliteブランチ

        いつでも他拠点のソースを取り入れられる


                              34
つまり



      35
これが
       master
                      他開発者




                機能B
機能A




                臨時修正




α1.1



                             36
こうなる
         機能A   機能B   develop   misc.   master   satellite
                                                         他開発者



                                                       他者のソース
                                                       も随時同期


ライフタイム
が一目瞭然




                                                α1.1




                                            マイルストーン
                                            そのもの



                                                                37
しかも



      38
プロジェクト進行中
  に生じる


            39
雑多な作業が
簡単に実現できると判明



              40
お
        この不具合を最優先で明日までに
客
様
           直しておいてください


    • 今の状態を一時的に退避
     • gitの2段階コミットが活躍
    • 作業が終わったらgit stash popで元通り
    git stash
     git co -b hotfix/problem …臨時作業開始
      git stash pop …元の作業再開

                                        41
お
          この機能、別でも使いたいので 
客
様
            ソースを一式ください


    • 機能=ブランチで作業してきたので簡単
     • 変更されたファイルだけを抽出
    • 分散していたら、コミットをcherry-pick
     でまとめてから実行

    git archive -o archive.zip HEAD 
     `git diff --name-only <ブランチ先頭> <ブランチ末尾> `


                                                 42
実装が済んだので
自
分         コードレビューしてください!


 •   ブランチ=レビュー対象

 •   機能実装したときの変更履歴
     =ブランチの変更履歴
      =マージしたときのコミットログ(とdiff)
    git archive -o archive.zip <マージコミット> 
     `git diff --name-only <ブランチ先頭> <ブランチ末尾> `
    git log HEAD^..HEAD > CHANGELOG.txt

※ 複数人で開発していればgit-pullがベター
                                                 43
発見した不具合、以前は出ていな
Tester
               かったような気がします…


    • 歴史の二分探索
     • O(logn)で問題に到達
         git bisect start HEAD alpha_2_0 …安全点(α2)から調査開始
         テストして結果を git bisect good / bad
          git bisect reset …調査終了。問題のコミットを調査



     •    スクリプトで自動実行も可能
         git bisect run <スクリプト>

                                                          44
不具合の発生数を
上                集計してください
司



• 不具合の数
     =“fix”または “hotfix” の付いたタグの数



    git tag | grep "fix/" | wc -l


                                    45
コード変更量を機能ごとに
上
司           カウントして教えてください


•    ブランチ開始∼マージの期間に着目

•    各ファイルがどれだけ変更されたか

    •   追加行数、削除行数

    •   移動・削除ファイルのマスク可

    (ブランチごとに実施)
    git diff <ブランチ先頭>..<ブランチ末尾> --numstat



                                            46
変更の多かったモジュールは
上
司                           どれですかぁ?図で見たいなぁ

    git diff <初回コミット> --dirstat | sort

    % git diff --dirstat=changes 127d6649 | sort -r
     17.4% 3rdparty/lib/
                                                                   modules
     16.1% modules/                                   3rdparty/lib
                                                                    16%
     10.5% data/vec_files/                                17%
                                                                         data/vec_files
     10.1% 3rdparty/ffmpeg/
                                                                              10%
      8.7% 3rdparty/                                  その他
      7.7% samples/cpp/                                7%
      6.0% samples/gpu/                                                       10%
      5.1% doc/
      4.7% doc/tutorials/                                                9%
      3.3% interfaces/swig/python/                                  8%
      3.1% interfaces/swig/octave/
                                                       計測対象:OpenCVソース(所要時間3分)
                                                                                         47
要求定義                   検収

 基本設計              結合テスト

  詳細設計           機能テスト

       実装      単体テスト



       「図解 はじめてのCMMIとプロセス改善」(橋本隆成著)から引用
                                      48
要件開発・管理         妥当性確認
                            プロジェクト管理
  要求定義                検収

     基本設計           結合テスト    監視と制御
      詳細設計
              技術解機能テスト

         実装     単体テスト
                             リスク管理
検証


 構成管理                品質保証      測定・分析




            構成は「図解 はじめてのCMMIとプロセス改善」(橋本隆成著)から引用
                                              49
結果として



        50
1つ1つの作業に集中出来た

振り返りが楽になった

心理的負担が減少した



                51
1つ1つの作業に集中出来た



• 他の作業・ソースが邪魔をしない
 • 必要になればマージすればOK


                    52
振り返りが楽になった
•   コードレビューが行いやすくなった

    •   機能のコンテキスト調査にブランチを見るだけ

•   不具合調査が効率的に行えた

    •   調査開始ポイントを1分で特定できたことも

•   レトロスペクティブの準備が簡単だった

    •   集計作業が(ほぼ)機械的に行えた



                                53
心理的負担の低減
• 割り込み作業にも安心して取り組めた
• 適当なコードでもどんどんコミットし
 て後で整理できた

• 常にmaster==安定版
 • デプロイ対象にゴミが混じらない
                      54
しかし課題も
× サテライトブランチの運用に失敗した
 •   終盤の頻繁な更新で運用を徹底出来ず

 •   集計作業に支障をきたした

     •   自動化すべきだった…

× gitの知識が求められる
 •   適切な運用・集計などで差がつく
     (プロジェクト終了後に知った知識も…)
△ 他ツール(Jenkins,Gerrit)と連携できると良かった

                                    55
まとめ
• Gitとgit-flowはプロセス進行を助ける
 • 他者からも一目瞭然
• とはいえ銀の弾丸ではない
 • 運用ルールを守らないと意味が無い
 • は 屋
                           56
ご清聴ありがとうございました
                 57
58
おまけ



      59
• git-flowのコマンドをスクリプト化する
 ツールが公開されています


 • https://github.com/nvie/gitflow

• OS XならSource Treeなどがサポート

                                    60
チームで開発する場合
•   サーバー or リーダーのPCに中央リポジトリ

    •   developとmasterだけ生き続ける

    •   リリース前にreleaseブランチで作業

•   各メンバー

    •   ローカルのdevelop = 中央のdevelop

    •   ソースリリース=中央へのPull Request


                                    61
gitここが便利
•   コミット前の整理が容易

    •   git rebase -i / git merge --squash
•   作業の途中で別の作業をしやすい

    •   git stash / git stash pop
•   リポジトリがゴミ溜めにならない

    •   軽くて強力なブランチ&マージ

•   svnな環境でもgit-svn使えば幸せ


                                             62
Windowsでも使える
• msysGit 1.7.10からUTF-8対応
• Visual Studio(2012.2 & TFS)でもサポート
  • http://blogs.msdn.com/b/bharry/archive/
    2013/01/30/git-init-vs.aspx
• TortoiseGitも(今ならあまり)遅くない
• Win版SourceTreeも開発中!
                                              63

More Related Content

What's hot

Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
Ayana Yokota
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
techscore
 
新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)
pupupopo88
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
 
図解gitworkflows(7)
図解gitworkflows(7)図解gitworkflows(7)
図解gitworkflows(7)
ktateish
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
Youhei Nitta
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
to_ueda
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
Tomohiko Himura
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
dsuke Takaoka
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
Seiji Hiraki
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
 

What's hot (20)

Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
 
新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
図解gitworkflows(7)
図解gitworkflows(7)図解gitworkflows(7)
図解gitworkflows(7)
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 

Viewers also liked

Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
hiroyuki koga
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
 
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.
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Takashi Uemura
 
クックパッドの開発プロセス
クックパッドの開発プロセスクックパッドの開発プロセス
クックパッドの開発プロセス
Hiroyuki Inoue
 
Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介y42sora
 
subversion hacks (create a commit template)
subversion hacks (create a commit template)subversion hacks (create a commit template)
subversion hacks (create a commit template)
Hirohito Kato
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
よしだ あつし
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
Kouji Matsui
 
3年前の僕へ
3年前の僕へ3年前の僕へ
3年前の僕へ
garden_tree
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
ktateish
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
Takafumi ONAKA
 
Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!
SATOSHI TAGOMORI
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
Etsuji Nakai
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 

Viewers also liked (19)

Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
 
ノンプログラマでも今日から使える「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環境の構築
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
クックパッドの開発プロセス
クックパッドの開発プロセスクックパッドの開発プロセス
クックパッドの開発プロセス
 
Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介
 
subversion hacks (create a commit template)
subversion hacks (create a commit template)subversion hacks (create a commit template)
subversion hacks (create a commit template)
 
Ansible study1
Ansible study1Ansible study1
Ansible study1
 
Serverspec at hbstudy #45
Serverspec at hbstudy #45Serverspec at hbstudy #45
Serverspec at hbstudy #45
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
3年前の僕へ
3年前の僕へ3年前の僕へ
3年前の僕へ
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 

Similar to Git flowの活用事例

バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフローadd20
 
Gitを使った運用方法
Gitを使った運用方法Gitを使った運用方法
Gitを使った運用方法
Hiroki Nigorinuma
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Shota Umeda
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
Tadahiro Ishisaka
 
Develop flow
Develop flowDevelop flow
Develop flow
runeleaf
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
Nariaki Tateiwa
 
Pretty Good Branch Strategy for Git/Mercurial
Pretty Good Branch Strategy for Git/MercurialPretty Good Branch Strategy for Git/Mercurial
Pretty Good Branch Strategy for Git/Mercurial
kwatch
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離Kazushi Kamegawa
 
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
将 高野
 
Githubのブランチ運用戦略
Githubのブランチ運用戦略Githubのブランチ運用戦略
Githubのブランチ運用戦略
Roy Kim
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
Yukihiko SAWANOBORI
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
VirtualTech Japan Inc./Begi.net Inc.
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
Computational Materials Science Initiative
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門AimingStudy
 

Similar to Git flowの活用事例 (20)

バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
 
Gitを使った運用方法
Gitを使った運用方法Gitを使った運用方法
Gitを使った運用方法
 
Git (運用編)
Git (運用編)Git (運用編)
Git (運用編)
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
 
Develop flow
Develop flowDevelop flow
Develop flow
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
Pretty Good Branch Strategy for Git/Mercurial
Pretty Good Branch Strategy for Git/MercurialPretty Good Branch Strategy for Git/Mercurial
Pretty Good Branch Strategy for Git/Mercurial
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離
 
Git(japanese)
Git(japanese)Git(japanese)
Git(japanese)
 
はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)はじめてのReleaseブランチ運用(svn編)
はじめてのReleaseブランチ運用(svn編)
 
Successful git
Successful gitSuccessful git
Successful git
 
Githubのブランチ運用戦略
Githubのブランチ運用戦略Githubのブランチ運用戦略
Githubのブランチ運用戦略
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
 
Devsumi2008
Devsumi2008Devsumi2008
Devsumi2008
 
Git overview (v 0.96)
Git overview (v 0.96)Git overview (v 0.96)
Git overview (v 0.96)
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
 

More from Hirohito Kato

English for programmers
English for programmersEnglish for programmers
English for programmers
Hirohito Kato
 
A4でまとめるClean architecture概要
A4でまとめるClean architecture概要A4でまとめるClean architecture概要
A4でまとめるClean architecture概要
Hirohito Kato
 
Fighting history of CGFloat in Swift
Fighting history of CGFloat in SwiftFighting history of CGFloat in Swift
Fighting history of CGFloat in Swift
Hirohito Kato
 
functional programming & c++
functional programming & c++functional programming & c++
functional programming & c++
Hirohito Kato
 
Linux device driver for dummies
Linux device driver for dummiesLinux device driver for dummies
Linux device driver for dummies
Hirohito Kato
 
yidev第七回勉強会:「Assets Library手習い」発表資料
yidev第七回勉強会:「Assets Library手習い」発表資料yidev第七回勉強会:「Assets Library手習い」発表資料
yidev第七回勉強会:「Assets Library手習い」発表資料
Hirohito Kato
 
Mosquito Attack
Mosquito AttackMosquito Attack
Mosquito Attack
Hirohito Kato
 

More from Hirohito Kato (7)

English for programmers
English for programmersEnglish for programmers
English for programmers
 
A4でまとめるClean architecture概要
A4でまとめるClean architecture概要A4でまとめるClean architecture概要
A4でまとめるClean architecture概要
 
Fighting history of CGFloat in Swift
Fighting history of CGFloat in SwiftFighting history of CGFloat in Swift
Fighting history of CGFloat in Swift
 
functional programming & c++
functional programming & c++functional programming & c++
functional programming & c++
 
Linux device driver for dummies
Linux device driver for dummiesLinux device driver for dummies
Linux device driver for dummies
 
yidev第七回勉強会:「Assets Library手習い」発表資料
yidev第七回勉強会:「Assets Library手習い」発表資料yidev第七回勉強会:「Assets Library手習い」発表資料
yidev第七回勉強会:「Assets Library手習い」発表資料
 
Mosquito Attack
Mosquito AttackMosquito Attack
Mosquito Attack
 

Recently uploaded

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

Git flowの活用事例