GitHubを始める為に - その8.Branch運用法 GitHub-flow

GitHub Flow – Scott Chacon


GitHub基礎を学ぶ為に始めたこの「GitHubを始める為に」ですが、今回で一旦終わります。
今まで学んできたことを並べていくと、一通りの基礎的なことは網羅できたはずです。

あと学び足りていないところは、実際にGitを使用していく経験と今回お伝えするGitのBranch運用方法かと思っています。
もちろん、チーム開発時を想定するとpull requestやissueも学びたいところですが、それはまた機会を伺って紹介したいと思います。

では、Branch運用の紹介です。

Branch運用に使用するコマンド

まず、 Trygitの最後の方で出てきたBranch操作を思い出しましょう。
忘れていたらもう一度Trygitをやってみるのも良いかもしれません。

1.18 Branching Outgit branch clean_upを打つページからbranch操作が始まります。
ここでは以下の流れで作業をしています。

  1. clean_upブランチの作成
  2. clean_upブランチへ移動
  3. すべてのファイルを削除
  4. コミット
  5. masterブランチへ移動
  6. masterブランチへclean_upブランチをマージ
  7. clean_upブランチを削除
  8. リモートリポジトリへpush

上記を踏まえて、基本的なbranch操作コマンドを以下にまとめました。

Branch運用方法

Branchの操作方法がわかったところで、疑問に思うのは

じゃあ、どうやってBranchを運用していくのか?

だと思います。
Branchは作りたいだけ作れますし、たとえ個人で開発している場合でも運用ルールを決めておいたほうが迷いません。

GitHub flow

GitでのBranch運用といえば、Git flow日本語での説明:git-flow cheatsheet)が有名ですが、個人もしくは小規模の場合GitHub flow(原文はこちら)の方がシンプルで使いやすいだろうと思い、こちらを紹介します。

翻訳版の記事から引用すると、

  • masterブランチのものは何であれデプロイ可能である
  • 新しい何かに取り組む際は、説明的な名前のブランチをmasterから作成する(例: new-oauth2-scopes)
  • 作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする
  • フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 プルリクエスト を作成する
  • 他の誰かがレビューをして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
  • マージをしてmasterへpushしたら、直ちにデプロイをする

これが全てである。と書いてあります。
これを簡易図に起こしてみました。

pull requestとありますが、チーム開発時にレビューを行う為の手段となるので、個人で開発している場合は自分で最後に見直したあと$ git pushに置き換えていいと思います。