github-flowを使っての開発(3) -1つのプロジェクトを複数人で開発-

公開日: : github, IT


今まで2回ほどgithub-flowをもとにした開発の流れを書きました。
今回は、複数人で開発をする時の流れを書いてみます。

github-flowでの開発

githubを使っての開発(1) -実践github-flow- | PPl@ce
githubを使っての開発(2) -masterブランチにマージ- | PPl@ce

 前提

  • プロジェクト管理システムを使っている(trac、redmine、JIRA)

    • チケットでタスクを管理している

 最初にproject用ブランチを作成

まず作成するブランチにチケットのナンバーもつけておきます。

  • git checkout master
  • git checkout -b 134_project_name

このブランチで何かしらの作業はしません。
このブランチは、PullRequestのときのmerge先とします。

 開発サイクル

 プロジェクト用のブランチから各チケット単位でブランチを作成

チケット単位でタスクを管理しているので、そのタスク単位でブランチを作成します。

  • git checkout 134_project_name
  • git pull
  • git checkout -b 145_new_task_name

 各ブランチで開発をおこない終わったらPullRequest

作成したブランチで開発をおこない、適宜コミットをしていきます。
完成したら、最初に作成したproject用のブランチにPullRequestを投げます。

 レビュー&merge

ソースコードレビューをgithub上でおこない、修正&レビューを繰り返します。
問題なくなったら、project用ブランチにmergeします。

 チケットを閉じる

mergeされたらチケットをcloseします。

プロジェクト用のブランチは、このプロジェクトにおける最新の状態にしておき、できればテスト環境にデプロイをします。
常に最新の状態をテスト環境で試せるようにします。

 注意点

 masterブランチに何かがmergeされたら?

このプロジェクトを開発している間に、新しい機能がリリースされmasterにmergeされるケースもあります。
その場合は、masterにmergeされた段階でプロジェクト用のブランチに組み込みます。
影響範囲を知るためにも早めにとりこみます。

 merge後に問題がおきたら?

何かの機能をmerge後に問題がおきて動かなくなったらどこで修正するか?というのがあるかと思います。
これは、ケースバイケースですが、そのmergeしたブランチを一回外して、そのブランチで修正してから再度mergeするのが良いです。

プロジェクト用のブランチは各チケット単位のブランチのmergeされただけの状態にします。
つまり、プロジェクト用のブランチで修正作業などはしません。
これは、仮にある機能がいらなくなった場合に対応しやすいようにするためです。

広告

関連記事

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

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

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

記事を読む

no image

iPhoneアプリ開発 -バックグラウンド処理をした際にはまったこと-

* おきたこと 以下のメソッドを用いて、処理に時間がかかるもの(ここだとhoge)をバックグラウンド

記事を読む

no image

jQuery Mobile導入手順 -はじめの一歩-

jQuery Mobileの1.0がリリースされ、利用したい方が増えていると思います。 最初に何を

記事を読む

Jenkins + iPhoneアプリ(番外1) -TestFlightを利用する-

* これまで - -- 執事(Jenkins)を雇いました。 * やりたいこと Jenk

記事を読む

no image

ソーシャルボタン(Twitterのフォローボタン、Facebookのオススメボタン)を設置する

サイトにソーシャルボタンを設置しようと思いちょこっと調べてみました。 * 設置するボタン

記事を読む

スクリーンショット 2012-12-06 15.34.43

iPhoneアプリ開発 -端末がネットワークにつながっているかどうか知りたい-

* やりたいこと アプリがネットに繋がっていなければアラートボックスを表示させたい。 ネットに繋

記事を読む

1

Androidアプリ開発 -9patchで吹き出し画像を作る-

* やりたいこと TextViewで文字を表示させ、背景画像に吹き出し画像を設定した場合。 文字

記事を読む

no image

str_padとsprintfの速度

PHPで同じことが出来る「str_pad」と「sprintf」。 今まではsprintfを使う機会

記事を読む

Jenkins + iPhoneアプリ(1) -執事を雇う-

アプリ開発をしていると、自動化出来るところは自動化したくなってきますよね。 開発しているアプリも増え

記事を読む

構成

定期的にデータ取得のためにCakePHP1.3でシェル機能を利用

定期的にデータを取得する行為をするために、はじめてシェル機能を使ってみたのでメモ。 * ス

記事を読む

広告

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 ↑