LoginSignup
65
65

More than 5 years have passed since last update.

A successful Git branching modelから重要なとこを抽出

Last updated at Posted at 2012-01-24

Git使うなら絶対に一度は読んだ方がいい良エントリ

理屈は本文読めということで、ルール的な箇所を抽出

ブランチの種類

  1. メインブランチ
  2. サポートブランチ

サポートブランチはさらに3種類に分類される

メインブランチ

  • メインブランチはmasterとdevelopの二つ
  • この二つは常に存在するし、削除しない
  • masterでの開発は一切しない
  • developで開発してmasterにマージするのが大きな流れ

サポートブランチ

  • フィーチャーブランチ
  • リリースブランチ
  • ホットフィックスブランチ
  • 用が済めば削除される

フィーチャーブランチ

  • developから分岐してdevelopにマージされる
  • 命名規則は特に無し(他の種類のブランチと区別がつくように)
  • 個々の機能を実装する
  • originにはpushしない

フィーチャーブランチの一生

$ git checkout -b myfeature develop
$ # 機能の開発
$ git commit -m 'Implement myfeature'
$ git checkout develop
$ git merge --no-ff myfeature # --no-ffフラグでマージして
$ git branch -D myfeature # 開発が終了したブランチは削除する
$ git push origin develop

--no-ffフラグについては本文参照

リリースブランチ

  • developから分岐してmasterにマージされる
  • デプロイ用の変更を開発環境に反映したければdevelopにもマージする
  • 命名規則はrelease-*
  • 機能開発はしない
  • デプロイの準備をする

リリースブランチの一生

$ git checkout -b release-1.2 develop # version1.2のためのリリースブランチ
$ # リリースのための作業
$ git commit -m 'Version 1.2'
$ git checkout master
$ git merge --no-ff release-1.2
$ git tag -a 1.2
$ git branch -D release-1.2

ホットフィックスブランチ

  • masterから分岐してdevelopとmasterにマージされる
  • 本番環境発覚したバグなどに対応する
  • 命名規則はhotfix-*
  • 機能開発ではない

ホットフィックスブランチの一生

$ git checkout -b hotfix-1.2.1 master
$ #バグフィックス
$ git commit -m 'Fixed severe production problem'
$ # バージョンを一つ上げる
$ git commit -am 'Version 1.2.1'
$ git checkout master
$ git merge --no-ff hotfix-1.2.1
$ git tag -a 1.2.1
$ git checkout develop # もしリリースブランチがあれば、そっちにマージ
$ git merge --no-ff hotfix-1.2.1
$ git branch -D hotfix-1.2.1
65
65
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
65