git-flowをやってみる
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
2週間ほど前に以前から気になっていた上記書籍を買って一気読みしました。
その中でgit-flowやgithub-flowの方法が詳細に解説してあったので、いまさらですがgit-flowを試してみました。
1. git-flowインストール
macの場合はbrewでインストールできます
brew install git-flow
CentOSの場合は CentOSにgit-flowをインストールする方法 - Qiita を参考にさせていただきました。
2. 初期設定
- リポジトリclone(サンプルです)
git clone [email protected]:hilotter/rails_upload_sample.git
cd rails_upload_sample
- git flow初期設定
git flow init -d
- dvelopブランチになっていることを確認
git branch
* develop
3. 新機能の開発を始める場合
- featureブランチを作成する
git flow feature start add-xxxx
追加したfeatureブランチに該当作業のみをコミットする(今回の機能追加と関係ない作業は別ブランチを作って行う)
途中developブランチに別のメンバーがマージを行った場合、featureブランチに差分を取り込む
git pull origin develop
コンフリクトが発生した場合は適宜修正を行う。
- 作業が落ち着いたタイミングでリモートブランチにpush
git push origin feature/add-xxxx
チームメンバーでレビューしてフィードバック
コードを修正してフィードバックを反映(ローカルのブランチに反映していく)
ひと通り修正したタイミングでリモートブランチにpush
チームメンバで再度レビューして、問題なければdevelopブランチにマージ
git co develop
git pull
git merge feature/add-xxxx
git push
- マージ後、3.に戻って次の新機能開発を行う
ざっくりですが今回はdevelopとfeatureブランチの基本的な開発の流れをやってみました。
「 Using git-flow to automate your git branching workflow」にある公式の全体像は以下のようになります。
引き続きgit-flow実践してみようと思います。