Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

153,975 views

Published on

Published in: Technology
  • Be the first to comment

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

  1. 1. バージョン管理の ワークフロー Twitter ID: @add20 2012/3/10
  2. 2. A successful Git branching modelA succcessful Git branching model とは、Git の開発モデルの内の一つです。Gitのブランチは自由に簡単に作ることができますが、自由度が高いが故にかえってそれが混乱の元になることもあります。このモデルに従ってバージョン管理をすることで、Gitによるバージョン管理のワークフローの見通しがよくなります。また、他者と協力して開発するときにも共通の指針となり大変便利です。
  3. 3. メインブランチこの開発モデルでは、中心となる二つの平行したブランチを軸に開発を進めていきます。 master develop
  4. 4. masterブランチmasterブランチは、製品として出荷可能な状態を常に反映するブランチです。ユーザはこのブランチの最新の安定板をcloneして使うことになるでしょう。masterブランチを、安定したリリースバージョン専用のブランチとして使用することで、最新安定板ブランチの所在が明確になります。
  5. 5. developブランチdeveloブランチは、次のリリースのための最新の開発作業の変更を常に反映するブランチです。いわゆる開発版です。developブランチは、各機能の統合ブランチとして使用します。このように決めておくことで、機能ごとに作ったブランチの統合先を忘れたりすることがなくなり、トピックブランチのベースブランチを探す作業から解放されます。
  6. 6. メインブランチ開発者は新しい機能をdevelopブランチにどんどん追加して、developブランチが十分に安定してきたら、masterブランチにマージしてリリースします。
  7. 7. サポートブランチサポートブランチは、機能の追加、製品リリースの準備、製品に起きた問題の解決などの用途に使用されます。 Feature ブランチ Release ブランチ Hotfix ブランチ
  8. 8. Feature ブランチフィーチャーブランチ(またはトピックブランチとも言う)は、次のリリースや遠い将来に入るような新しい機能の開発をするのに使われる。 分岐元:develop マージ先:develop
  9. 9. 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
  10. 10. Release ブランチリリースブランチは新しい製品リリースの準備をサポートします。リリースのためのメタデータ(バージョン番号、ビルド日時など)の準備をするためのブランチです。こういった細かい作業をリリースブランチ内ですることによって、developブランチをきれいに保ちます。 分岐元:develop マージ先:develop と master
  11. 11. 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
  12. 12. Hotfix ブランチホットフィックスブランチは、安定板のmasterで致命的なバグが見つかったときなどに使用します。ホットフィックスブランチの分岐元はmasterです。その極意は、developブランチで作業しているチームメンバーが作業を続けられながら、別の人間が製品の素早い修正を準備できることです。 分岐元:master マージ先:develop と master
  13. 13. 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
  14. 14. 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 uccessfuAuthor: Vincent DriessenOriginal blog post: http://nvie.com/ As
  15. 15. このブランチモデルは、いいとは思うけど・・・
  16. 16. あんな長ったらしいフローは、いちいち覚えていられないし・・・ 打つコマンドもたくさんあって ちょっと・・・
  17. 17. あるんです
  18. 18. git-flowgit-flow A successful branching model を補助してく れるGitプラグイン
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 参考 参考というか、引用というか、コピペというか・・・http://nvie.com/posts/a-successful-git-branching-model/http://keijinsonyaban.blogspot.com/2010/10/successful-git-branching-model.htmlhttp://www.oreilly.co.jp/community/blog/2011/11/branch-model-with-git-flow.htmlhttp://d.hatena.ne.jp/Voluntas/20101223/1293111549https://github.com/nvie/gitflow
  23. 23. ご清聴ありがとうございました。

×