A successful Git branching modelとは
各ブランチについて
-
master
リリース可能な状態を反映するブランチ。
ブランチ名:master
タグをつける。 -
develop
開発用のメインブランチ。
ブランチ名:develop
masterブランチから作成する。 -
feature
新機能を実装するためのブランチ。
ブランチ名:master, develop, release-* , hotfix-* 以外
developブランチから開発者のレポジトリのみに作成。
修正完了後、developブランチへマージし、削除。 -
release
リリースを準備するためのブランチ。
ブランチ名:release-*
developブランチから開発者のレポジトリのみに作成。
修正完了後、developブランチとmasterブランチへマージし、削除。 -
hotfix
バグを修正するためのブランチ。
ブランチ名:hotfix-*
masterブランチから開発者のレポジトリのみに作成。
修正完了後、developブランチとmasterブランチへマージし、削除。
共有レポジトリ作成
$ cd xxx
$ mkdir project.git
$ cd project.git
$ git init --bare --shared
レポジトリ作成、共有レポジトリへpush
$ cd project
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin ssh://user@server:port/xxx/project.git
$ git push origin master
共有レポジトリからclone
$ cd xxx
$ git clone ssh://user@server:port/xxx/project.git
初期設定
$ git config user.name [あなたの名前]
$ git config user.email [あなたのメールアドレス]
developブランチ作成(masterブランチから)
$ git checkout -b develop master
$ git push origin develop
featureブランチ作成(developブランチから)
$ git checkout -b feature develop
featureブランチマージ(developブランチへ)
$ git checkout develop
$ git merge --no-ff feature
$ git push origin develop
$ git branch -d feature
releaseブランチ作成(developブランチから)
$ git checkout -b release develop
releaseブランチマージ(developブランチへ)
$ git checkout develop
$ git merge --no-ff release
$ git push origin develop
releaseブランチマージ(masterブランチへ)
$ git checkout master
$ git merge --no-ff release
$ git push origin master
$ git tag -a 1.0 -m 'version1.0 release'
$ git push --tags
$ git branch -d release
hotfixブランチ作成
$ git checkout -b hotfix master
hotfixブランチマージ(developブランチへ)
$ git checkout develop
$ git merge --no-ff hotfix
$ git push origin develop
hotfixブランチマージ(masterブランチへ)
$ git checkout master
$ git merge --no-ff hotfix
$ git push origin master
$ git tag -a 1.1 -m 'version1.1 release'
$ git push --tags
$ git branch -d hotfix