hello-world
webエンジニアのメモ。とりあえずやってみる。

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」にある公式の全体像は以下のようになります。

gitflow

引き続きgit-flow実践してみようと思います。

参考


Related #git

git commit した後に .gitignore したい場合

時々、git commit した後に「そういえばこれ管理対象から外したいファイルだった」と気づいて .gitignore したいということがあります。

bitbucketでRawデータのURLを取得する

bitbucketでRawデータのURLを知りたい時に、以下のように「Raw形式で表示」を選択しても最新のコミットに紐付いたURLになってしまいます。

gitのHEADが設定されなかった場合の対処法

bitbucketで新規リポジトリを作成して、ローカルからgit remote addで設定を行った際に、origin/HEADがないという状態になってしまいました。