プルリクエスト/レビューを取り込んだ、よりシンプルなGitHub Flowの運用を図解する:Gitブランチを使いこなすgit-flow/GitHub Flow入門(終)(2/2 ページ)
数回にわたってgit-flowとGitHub Flowを使ったGitの活用テクニックを紹介します。最終回は、GitHubが採用している、git-flowよりシンプルな構成のブランチ管理フローについてです。5つの運用ルールや開発の流れを図を交えて解説します。
【3】レビュー
レビューアーはプルリクエストをレビューします。GitHubを利用した場合、プルリクエストによるmasterブランチの差分をWeb画面から確認することもできます(図3下)。
また、変更点の任意の場所にレビューコメントを追加できます。
【4】修正
プルリクエストを作成した担当者は、レビューアーのコメントを受け、修正した変更をリポジトリへプッシュします。コミットプッシュは、下記のように、プルリクエストを送ったブランチを修正し、そのままプッシュするだけです。特別な作業は必要ありません。
以下は、new-featブランチでの作業例です。
$ git commit -m "アイコン位置の指定にcenterを追加"
[new-feat 51635a3] アイコン位置の指定にcenterを追加
1 file changed, 1 insertion(+)
$ git push
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 439 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
To https://github.com/okamototk/test
801a44e..51635a3 new-feat -> new-feat
修正したプッシュは、自動的にプルリクエストに反映されます。
追加のコミットもプルリクエスト上で管理されるので、プルリクエストの画面を見れば、誰がどのようなコメントを行い、どのような修正がなされたか確認できます。
マージ
レビューアーから承認が得られたら、作業用ブランチをmasterブランチへマージし、プルリクエストをクローズします。
マージは、レビューが完了したのを受けて担当者が行ってもよいです。また、リーダー、あるいはレビューアーの承認の下でブランチをmasterへマージする場合には、ブランチをmasterブランチへマージする担当者を決めておいてもよいでしょう。
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff new-feat
Merge made by the 'recursive' strategy.
04_Button/button-iconpos.html | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 04_Button/button-iconpos.html
上記の例では、プルリクエストのマージ点が分かるように「--no-ff」を付けて、ファーストフォワードでないマージを利用しています。マージが完了したら、Gitリポジトリへプッシュを行うと、プルリクエストにマージされた記録が残り、自動的にクローズされます。
不要になったブランチは、上記画面の「Delete branch」ボタンから削除することもできます。
git-flowとGitHub Flowを参考に、カスタマイズを
本連載では、4回に渡りGitブランチの運用フローとして注目を浴びているgit-flowとGitHub Flowを紹介してきましたが、いかがでしたでしょうか。
git-flowもGitHub Flowも一長一短です。開発中のブランチとリリースされたリソースをきちんと分けてプロジェクトを管理したい場合は、git-flowの方が合っているでしょうし、簡単なフローで、インクリメンタルに素早くサービスを更新していくようなプロジェクトではGitHub Flowの方がフィットするでしょう。
また、git-flowやGitHub Flowの運用フローは、git-flowやGitHub Flowを採用しないと使えないものではなく、部分的に既存の運用フローに参考にできるものもあります。もちろん、各運用フローをカスタマイズして利用することも可能です。git-flow、GitHub Flowを手掛かりにブランチ運用の改善を行い、皆さんのプロジェクトに合わせてカスタマイズしていくと、より効率的なフローになっていくと思います。
最後になりますが、本稿執筆に当たりレビューいただいた@sinsoku_listyさんに感謝します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- GitHubはリアルRPG? そして、ソーシャルコーディングへ
単なるリポジトリ管理ツールを超えて情報共有やチケット管理など本格的なプロジェクト管理も可能になったGitHubの5つの特徴を徹底解説します。これから始めてみたい人は必見の入門記事です。 - DevOps時代の開発者のための構成管理入門(3):知らないと現場で困るバージョン管理システムの基礎知識
「DevOps」という言葉にもあるように、ソフトウェア構成管理は、インフラ運用に取り入れられるなど、変わりつつある時代だ。本連載では、そのトレンドにフォーカスして、現在のソフトウェア開発に有効な構成管理のノウハウをお伝えする。今回は構成管理に不可欠ともいえるバージョン管理について、ブランチ機能を中心に紹介。SubversionからGitへの移行事例も。 - これでGitも怖くない! GUIでのバージョン管理が無料でできるSourceTreeの7つの特徴とは
SourceTreeは直観的なGUIで使いやすい、今話題の無料のリポジトリ管理ツールです。本稿では、Windows版のSourceTreeをGitサポート機能を中心に紹介します。 - かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(5):「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門
マージ、ブランチ、リポジトリ、コミット、リビジョン、インデックス、プル、フェッチなどの用語も図で解説 - かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(6):Redmine×Gitのハーモニーは涙のチケット駆動開発!?
ALMiniumのGit連携機能「リポジトリブラウザ」「コミット/ブランチとチケットの関連付け」などを解説 - ユカイ、ツーカイ、カイハツ環境!(3):分散バージョン管理Git/Mercurial/Bazaar徹底比較
分散型のバージョン管理とは何かについて解説し、3つを徹底比較する。TracやSubversion、Eclipse、Windowsとも連携可能だ - GitHub創設者が語る“軌跡”:GitHubが実践するオープンソース式マネジメント法
1月30日、Open Network Labは「GitHub創設者が語る“立ち上げから利用者300万人までの軌跡”」をテーマにイベントを開催した。そこで語られたGitHubの歴史や社員の採用方法、マーケティング術などをレポートする。 - 開発者からの強い支持、5年弱で300万ユーザーを突破:共同創業者に聞いた、GitHubは何が違ったのか?
破竹の勢いのプロジェクトホスティングサービス「GitHub」の創業者らに話を聞いた - [Analysis]ソーシャル化するOSS開発者たち