図とコマンドで分かる! git-flowによる開発の流れと使い方:Gitブランチを使いこなすgit-flow/GitHub Flow入門(3)(2/2 ページ)
数回にわたってgit-flowとGitHub Flowを使ったGitの活用テクニックを紹介します。今回は、git-flowの代表的なコマンドと、git-flowによるブランチ利用の流れを図とともに紹介します。
【4】コミットのプッシュ
通常のGitの利用と同じで、コミット内容を共有リポジトリへ送るにはプッシュします。
$ git push
【5】コミットの取り込み
先に紹介した「【3】ブランチの取得」の既にブランチを取り込んでいる場合と同様にして、共有リポジトリ上の変更をローカルリポジトリへ取り込みます。
$ git flow {ブランチ種別} pull origin
$ git flow {ブランチ種別} rebase
【6】ブランチの作業を終了
ブランチの作業を終了すると、ブランチでのコミット内容は関連するブランチへマージされます。ブランチの作業を終了するときは、ブランチのコードに対して、テストを実行し、正しく動作していることを確認してからマージするとよいです。
$ 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ブランチを終了する場合
featureブランチを終了する場合、図5のようにブランチのコミット内容はdevelopブランチへマージされます。
releaseブランチを終了する場合
releaseブランチを終了する場合は、featureの代わりにreleaseを指定します。
$ git flow release finish v1.0
releaseブランチでは、ブランチを終了すると、リリースソースコードを管理するmasterブランチへマージされ、ブランチ名がタグとして付与されます。
hotfixブランチを終了する場合
hotfixブランチを終了する場合は、hotfixを指定します。
$ git flow hotfix finish v1.0.1
hotfixブランチの作業内容、緊急リリースとして、masterブランチへマージされタグが付与されます。また、開発中のdevelopブランチにも修正内容がマージされます。
次回は、GitHub Flowについて
git-flowでの作業の流れを紹介してきました。git-flowはよく考えられており、厳格なブランチの管理が可能ですが、人によっては、ごちゃごちゃし過ぎて難しいと思われるかもしれません。
次回は、git-flowより簡単に運用できるGitHub Flowを紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- これでGitも怖くない! GUIでのバージョン管理が無料でできるSourceTreeの7つの特徴とは
SourceTreeは直観的なGUIで使いやすい、今話題の無料のリポジトリ管理ツールです。本稿では、Windows版のSourceTreeをGitサポート機能を中心に紹介します。 - かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(5):「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門
マージ、ブランチ、リポジトリ、コミット、リビジョン、インデックス、プル、フェッチなどの用語も図で解説 - かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(6):Redmine×Gitのハーモニーは涙のチケット駆動開発!?
ALMiniumのGit連携機能「リポジトリブラウザ」「コミット/ブランチとチケットの関連付け」などを解説 - ユカイ、ツーカイ、カイハツ環境!(15):Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
先日公開されたHeliosの主な変更点や、Windows 64ビット版/デスクトップLinuxへの対応、日本語化、次世代版の「e4」を紹介します - ユカイ、ツーカイ、カイハツ環境!(3):分散バージョン管理Git/Mercurial/Bazaar徹底比較
分散型のバージョン管理とは何かについて解説し、3つを徹底比較する。TracやSubversion、Eclipse、Windowsとも連携可能だ - ユカイ、ツーカイ、カイハツ環境!(20):Bazaarでござ〜る。猿でもできる分散バージョン管理
「SubversionやCVSは使っているがGitなど分散型は難しい」という人にお勧めのBazaar。その特徴や使い方を徹底解説します - UXClip(35):和製GitHubの「gitBREAK」は「儲からなくてもいい」
和製GitHubの「gitBREAK」は「P/L(profit and loss)は追いかけない」らしい。彼らが目指す「遠くても大きな利益」とは? - いまどきのソース・コード管理:第1回 TFS Expressで始めるソース・コード管理
ソース・コード管理のオンライン・サービス「Team Foundation Service」とTFS/Gitなどのオンプレミス・ツールを解説する連載スタート - 他ツールとの連携も強化:Git 1.7.5がリリース、メッセージの国際化へ一歩
オープンソースの分散バージョン管理システム「Git」の最新バージョン、「Git v.1.8.0」が10月21日、リリースされた。 - Subversion 1.7に対応:分散バージョン管理システム「Git」がバージョンアップ
- [Analysis]ソーシャル化するOSS開発者たち