GitHub Flow 図解

More than 1 year has passed since last update.


GitHub Flow 図解


概要

Git・GitHubを利用したシンプルで強力なワークフローであるGitHub Flowを図にまとめました。

GitLabでも利用可能なFlowです。GitLabの場合は Pull Request を Merge Request に読み替えてください。


前提

実際にGitHub Flowを実践したことはありません。(2014/06/12時点)

これからチームで導入予定で、メンバーとワークフローを共有するために図を作成しました。

ワークフローの誤りなどご指摘いただけると幸いです。

アクティビティ図をベースに作成してありますが、厳密な記法よりも

相手に伝わればいいかな、という点を重視しています。


基本原則


  • masterブランチは 常時デプロイ可能 である


  • 機能追加、バグフィックスなどは 説明的な名前のブランチ をmasterから作成する


    • 機能追加の例: add_user_notice (ユーザーの通知機能追加)

    • バグフィックスの例: fix_user_login_validation_error (ユーザーのログイン認証のVlidation修正)



  • 作成したブランチでローカル開発。小さい単位でこまめにコミットし、リモートにもこまめにPush



  • フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 Pull Request を作成する


    • フィードバックや助言が欲しい時に作成する Pull Request を WIP Pull Request という

    • WIP = Work In Progress

    • WIP Pull Request を行う場合は、Pull Request 名の頭に [WIP] をつけるのが慣習



  • レビューOKになったら、masterへマージ


  • masterへpushしたら、即デプロイをする



図解 ( astah* community 版)

github_flow.png


図解 ( Gviz 版)

Ruby | Gviz gem で GitHub Flow の図を書いてみる

上記記事で、Gviz の練習がてら、astah* で作成した図と同じものを Gviz で作成してみました。

※ Gviz は Graphviz を便利に使うための Ruby のラッパー gem です。

github_flow_gviz.png


補足

アクティビティ図は無償UMLモデリングツールの astah* community で作成しました。


アクティビティ図の元データである github_flow.asta は


GitHubに公開してありますので、Pull Requestなども受け入れます。


Forkしていただいて、自分のチーム向けにカスタマイズしていただいても構いません。

https://github.com/tbpgr/github_flow_for_ja