githubを使っての開発(1) -実践github-flow-

公開日: : 最終更新日:2014/04/19 github, IT, 開発環境


今は開発でgithubを利用しています。
開発をおこなう上で、githubをどのように扱えば良いのか。
思いの外、github-flowが良かったのでメモ書き程度に色々と書いておきます。

github-flowについて

GitHub Flowとは何か?

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

GitHub Flow (Japanese translation)

 作業の流れ

これだけ書かれても、git/githubに慣れてない人からすると「?」になります。
私も最初はそうでした。。

そこで、作業の流れを書いておきます。

 新ブランチ作成

1) まず、ソースがないと始まらないのでcloneをします。

 git clone https://github.com/xxxxxx/yyyyy.git

2) 機能の名前をつけたブランチを作成

 git checkout -b branch-name origin/master

これで、作業をする箇所が出来ました。
以下のコマンでで、ちゃんとブランチが正しいのになっているか確認します。

 git branch

※自分の現在のブランチが何か分からないと危険なので、gitのブランチ名が表示されるように設定したほうが良いです。
Macなら参考

 作業開始&ローカルリポジトリにコミット

作成したブランチでソースを書きます。
そして、定期的にローカルにコミットします。

 git add 追加したファイル名
 git commit -m "○○機能の追加"
 githubにコミット

ブランチで作成しているので、masterが汚れることはありません。
そこで、定期的にリgithubにpushします。

 git push origin branch-name

 コードが完成したらPullRequest

githubにはPullRequestという機能があります。
コードが完成したなと思ったら、自身のブランチからPull Requestを投げます。

この操作は、githubから行えます。
自身のブランチからPull Requestをクリックしてメッセージを入れるだけ。
スクリーンショット 2013-04-20 16.33.26

 第三者がレビュー

Pull Requestが投げられたら、コードに対してレビューをします。
githubでは、PullRequestされたコードに対してコメントが書けます。

 レビュー内容を元に修正しソースコードをpush

レビュー内容を元に修正が必要な箇所を修正し、ソースコードを再度pushします。

 git push origin branch-name
 レビュー&修正が終わったら担当者がマージ

masterブランチに入れても問題ない状態になったら、担当者がマージします。
この詳細については別エントリーで書いておきます。

 利点

常に動くものがmasterブランチにあり、新しい機能は別ブランチで作るという単純なルールですが非常に便利です。

そもそも、このフローの何が良いのか?

  • masterブランチには常に動作するソースコードがある

    • subversionであったいつのリビジョンなら動いたっけ?みたいなことはない
  • 機能はブランチで管理しているので現状が分かりやすい

    • masterからどれぐらい離れているかもすぐに分かります
    • そのため離れ過ぎたらmasterのソースをfetch-mergeということもしやすいです
  • ブランチ単位なので定期的にコミットできる

ちなみに、subversionでもこのフローはできますがgit/githubは非常に簡単にできます。
マージされたブランチがなくなるというのは、ちゃんと1本道になったんだなと分かる点で良いですね。

 参考

広告

関連記事

iPhoneアプリ開発 芳名帳アプリ作成(2) -記帳画面作成-

* 今までの流れ - * 画面構成 今回の芳名帳アプリは以下の画面で構成しています。 -

記事を読む

no image

iPhoneアプリ開発 -UIScrollViewで画像を拡大・縮小-

* やりたいこと UIScrollViewでピンチアウト・インして上に乗っている画像を拡大・縮小した

記事を読む

no image

Androidアプリ開発 -リストをタッチして別ページ表示-

* 前提 -「設定画面」で各種項目を設定。 --Activity:ConfigActivity --

記事を読む

NEC_0882

Facebookで名刺を作ってみた -Mooの名刺作成サービス-

1ヶ月~半月くらい前に話題になっていたMooの名刺作成サービス。 話題になっていた時期に注文した名

記事を読む

no image

Facebookがちょっとコワイ vol.1 -自分の情報をコントロールできない-

Facebookの最近の広がり方などを見ていて、少々不安を感じたので思ったことをつらつらと書いてみま

記事を読む

no image

iPhoneアプリ開発 −タッチで線を描く(1)−

* やりたいこと 今回やりたいことは以下の2点。 -(1) 画面をタッチして、指を動かして線を描きた

記事を読む

SnapCrab_NoName_2012-12-1_14-44-53_No-00

アプリのためにFacebookページ作成 -会社のメールアドレスで管理する方法-

アプリを作ると、色々と宣伝をしたくなります。 宣伝の方法は色々ありますが、今回はFacebookペ

記事を読む

iPad(Retinaディスプレイモデル)にiOS7を入れてみた

iPadにiOS7を入れてみたので、その報告。 iPhone5にはまだ入れておかないでおこうと思っ

記事を読む

iPhoneアプリ開発 芳名帳アプリ作成(5) -ペンサイズと入力エリア数の設定-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:titl

記事を読む

no image

iPhoneアプリをヒットさせるために大事な5つのこと

巷にはたくさんのiPhoneアプリがたくさんあります。 そして、毎日新しいアプリがリリースされていま

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑