mochizblog

2011-09-01 10:38:54 +0900

Github流 〜gitを使った開発着手からデプロイまでの流れ〜

githubのエンジニアでGit evangelistであるScott ChaconさんがGitHub Flowという記事を書かれていました。
「githubではgitを使ってどんな流れで開発を行うのか」が解説されています。
とても良い内容だったので、概要だけ翻訳してみました。
たぶん意図は通じていると思うのですが、嘘だったらごめんなさい。

So, what is GitHub Flow?

  1. Anything in the master branch is deployable
  2. To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
  3. Commit to that branch locally and regularly push your work to the same named branch on the server
  4. When you need feedback or help, or you think the branch is ready for merging, open a pull request
  5. After someone else has reviewed and signed off on the feature, you can merge it into master
  6. Once it is merged and pushed to ‘master’, you can and should deploy immediately

GitHub流

  1. マスターブランチを常にデプロイ可能な状態に維持すること
  2. 新たに作業を開始する場合、説明的な名前のブランチをマスターから分岐すること
  3. ローカルのブランチにコミットした内容は定期的にリモートリポジトリにプッシュすること
  4. フィードバックかヘルプが欲しいとき、マージをする前にプルリクエストをすること
  5. フィーチャについて他のメンバーにレビュー受けてから、マスターへマージすること
  6. マスターへマージしたら、すぐにデプロイすること

このサイクルで開発を回せるといろいろ捗りそう

「マスターを常にデプロイ出来る状態に保つ」
「作業は説明的な名前のブランチで行う」
「マスターへマージするまえに、必ずコードレビューを行う(githubにはpull requestという素晴らしいコードレビューシステムがあるから)」
「マージしたらすぐにデプロイする」

仕事ではsubversionを使っているのですが、プロジェクトが大きくなりすぎて気軽に機能ブランチを作成して作業をすることが難しくなっています。
gitは開発者にとって非常に快適な環境を提供してくれるすばらしいものなので、早くgitへ移行したいです。
ついでにgithubで作業できると尚良いのですが、受託開発ではなかなか難しいですね。