通常のGitの利用と同じで、コミット内容を共有リポジトリへ送るにはプッシュします。
$ git push
先に紹介した「【3】ブランチの取得」の既にブランチを取り込んでいる場合と同様にして、共有リポジトリ上の変更をローカルリポジトリへ取り込みます。
$ git flow {ブランチ種別} pull origin
$ git flow {ブランチ種別} rebase
ブランチの作業を終了すると、ブランチでのコミット内容は関連するブランチへマージされます。ブランチの作業を終了するときは、ブランチのコードに対して、テストを実行し、正しく動作していることを確認してからマージするとよいです。
$ git flow {ブランチ種別} finish {ブランチ名}
例えば、featureブランチの場合は次のようになります。
$ git flow feature finish myfeat
Switched to branch 'develop'
Updating 79ac9e8..9797178
Fast-forward
test.txt | 1 +
1 file changed, 1 insertion(+)
Deleted branch feature/myfeat (was 9797178).
Summary of actions:
- The feature branch 'feature/myfeat' was merged into 'develop'
- Feature branch 'feature/myfeat' has been removed
- You are now on branch 'develop'
ブランチ終了後、終了したfeatureブランチは削除され、カレントブランチがdevelopブランチへ変更されます。
$ git branch
* develop
master
カレントブランチが変更されるため、developブランチ以外のブランチで作業している場合は、注意してください。
ブランチを終了した場合のマージ先は、連載第1回の「いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識」で紹介した通り、ブランチ種別により異なります。
featureブランチを終了する場合、図5のようにブランチのコミット内容はdevelopブランチへマージされます。
releaseブランチを終了する場合は、featureの代わりにreleaseを指定します。
$ git flow release finish v1.0
releaseブランチでは、ブランチを終了すると、リリースソースコードを管理するmasterブランチへマージされ、ブランチ名がタグとして付与されます。
hotfixブランチを終了する場合は、hotfixを指定します。
$ git flow hotfix finish v1.0.1
hotfixブランチの作業内容、緊急リリースとして、masterブランチへマージされタグが付与されます。また、開発中のdevelopブランチにも修正内容がマージされます。
git-flowでの作業の流れを紹介してきました。git-flowはよく考えられており、厳格なブランチの管理が可能ですが、人によっては、ごちゃごちゃし過ぎて難しいと思われるかもしれません。
次回は、git-flowより簡単に運用できるGitHub Flowを紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.