githubを使っての開発(1) -実践github-flow-
開発をおこなう上で、githubをどのように扱えば良いのか。
思いの外、github-flowが良かったのでメモ書き程度に色々と書いておきます。
github-flowについて
GitHub Flowとは何か?
- masterブランチのものは何であれデプロイ可能である
- 新しい何かに取り組む際は、説明的な名前のブランチをmasterから作成する(例: new-oauth2-scopes)
- 作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする
- フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 プルリクエスト を作成する
- 他の誰かがレビューをして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
- マージをしてmasterへpushしたら、直ちにデプロイをする
作業の流れ
これだけ書かれても、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をクリックしてメッセージを入れるだけ。
第三者がレビュー
Pull Requestが投げられたら、コードに対してレビューをします。
githubでは、PullRequestされたコードに対してコメントが書けます。
レビュー内容を元に修正しソースコードをpush
レビュー内容を元に修正が必要な箇所を修正し、ソースコードを再度pushします。
git push origin branch-name
レビュー&修正が終わったら担当者がマージ
masterブランチに入れても問題ない状態になったら、担当者がマージします。
この詳細については別エントリーで書いておきます。
利点
常に動くものがmasterブランチにあり、新しい機能は別ブランチで作るという単純なルールですが非常に便利です。
そもそも、このフローの何が良いのか?
- masterブランチには常に動作するソースコードがある
- subversionであったいつのリビジョンなら動いたっけ?みたいなことはない
- 機能はブランチで管理しているので現状が分かりやすい
- masterからどれぐらい離れているかもすぐに分かります
- そのため離れ過ぎたらmasterのソースをfetch-mergeということもしやすいです
- ブランチ単位なので定期的にコミットできる
ちなみに、subversionでもこのフローはできますがgit/githubは非常に簡単にできます。
マージされたブランチがなくなるというのは、ちゃんと1本道になったんだなと分かる点で良いですね。
参考
広告
関連記事
-
CakePHP1.3でテストコード(3) -ENUM型が使えない-
cakePHP1.3でのSimpleTestを使ったテストケースの第3回目。 今回は、テーブル構成で
-
iPhoneアプリ開発 芳名帳アプリ作成(4) -設定準備-
* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=
-
CAPTCHAの導入方法 -KCAPTCHAの導入-
CakePHP(1.2、1.3)にKCAPTCHAを導入してみたのでメモ。 * CAPTCHA
-
第二回Androidテスト祭り参加記録 -祭りに参加してきたよ-
久しぶりに勉強会に参加してきました。 参加してきたのは「第二回Androidテスト祭り(4/28)
-
MacでRuby on Railsの開発環境構築 -Apacheで動かす-
* 環境 -MacBook Air MD231J/A -Mac OS X バージョン10.8.2
-
PhoneGapを触ってみた ―導入編―
スマートフォン対応をjQuery Mobileを使ってやったので、その資産をいかせないかということで
-
WordPressプラグイン「SyntaxHighlighter Evolved」が動かない!?
* 起きたこと ある時から、本ブログのコードの部分が「SyntaxHighlighter」で表示され
-
iPhone/iPadアプリを開発するためにやったこと
今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て100万DL超えしました!))し
-
「Google Apps」無償版の新規登録が終了
以前、「Google Apps」を利用した以下の記事を書きましたが、とうとう無償版の新規登録が終了
-
iPhoneアプリ開発 −UITabControllerの利用−
* やりたいこと 上にあるように下部にあるタブをタッチしたら別のページを呼び出す。 *