GitHub のプルリクエスト
複数担当者で役割分担をした共同開発(チーム開発)では、プルリクエストの発行からマージの手続きが不可欠です。
プルリクエストとは
プルリクエストとは、統合ブランチに対してマージ処理を行うための準備(手続き)です。ブランチの更新内容を統合ブランチに取り込みをするため他の担当者にレビューを依頼します。
プルリクエストを発行すると自分の加えた変更・修正を他の担当者に知らせ、その内容について評価・議論することができます。
基本的には、変更を加えた担当者以外の方にレビューをお願いしてレビューする担当者は更新内容を確認して承認します。
更新の内容が問題なければ統合ブランチへのマージ(更新データの取り込み)を許可します。
こうすることで、間違ったデータがマージ(統合)されるのを防ぐことができます。
またこの一連の手続きに関しても履歴が残るので誰がいつどんな評価をしていつ誰がマージしたのかも後から確認が可能となります。
注意)以下の説明は、ブラウザ画面モードを通常モードを指定した場合の説明になります。画面の表示モードを変更している場合は、見え方が異なります。
GitHubへの「push」
ローカル環境では、以下のようにコマンドを順番に実行して自身の作成したデータを定期的にGitHubのリポジトリに「push」を実行する。
1 2 3 |
git add . git commit -m "comment" git push |
(通常は、コミットの単位に配慮する必要があるが今回は大雑把ではあるが「git add .」として進める)
プルリクエストの流れ
ローカルからでGitHubリモートにpushをした直後、ブラウザからGitHubを開いてpush先のリモートリポジトリを見ると画面上部に黄色の地色で右端に緑のボタンで「Compare & pull request」と表示される。
プルリクエストの発行は、このボタンから発行でできるが一定時間が経過するとこの表示はなくなる。
その場合は、上部の「pull reqquest」のタブをクリックしてブラウザの画面右にある緑の「new pull request」ボタンをクリックすればプルリクエストを発行できる。
プルリクエストを発行は、以下の順番で操作を進める
①ベースブランチ:統合先のブランチでマージ先を選択
②トピックブランチ:自身の更新ブランチでこのデータを統合する(このブランチの更新データはレビューの対象となる)
③マージに問題が無い場合は、緑色で「Able to merge」と表示されるが、問題がある場合(この時点でコンフリクトが起きるた場合)は、「Can’t automatically merge. 」と赤色で表示される。コンフリクトが起きた場合は問題を解決してからプルリクエストを発行しなおす。
④画面右の「Reviewes」からレビューをお願いする担当者を指定する。
⑤プルリクエストに必要な情報としてタイトル名とメッセージコメントを入力する
⑥コメント入力欄の右下にある緑の「Compare pull request」をクリックするとプルリクエストが発行され「Reviewes」で指定した担当者にレビュー依頼のメールが配信され、Conversationにイベントが追加される(以下の画像参照)。
プルリクエストのレビューの対応
レビュアーの対応は、今回のプルリクエストの更新内容を確認して評価をする。内容に問題がなければ、問題のない旨をプルリクエストの発行者に伝える。もし更新内容に問題があれば差し戻して再修正を依頼しする流れになる。
レビューの流れは、以下の手順で行う
【レビュー対象のプルリクエストの画面に遷移】
レビュアーに配信されたレビューメールには、GitHubへのURLリンクが含まれておりクリックするとプルリクエストの画面に遷移することができる。
メールのリンクからでなくても対象となるリポジトリのプルリクエストタブからのアクセスでも可。
【ソースコードの確認】
右上の緑ボタン「Add your revieew」をクリックしてソースコードの更新内容を確認する。
【承認+コメント送信】
①右上の緑ボタン「revieew changes」でコメント欄に入力してラジオボタンで結果を選択する。
②レビューメッセージを入力します。
③レビュー結果を選択
【Comment】コメントを残します。承認はしません。
【Approve】プルリクエストの承認をして、コメントを残します(問題なければこれを選択する)。
【Request changes】修正依頼をしてコメントを残します。
④レビューを送信する。
緑の「Submit review」ボタンをクリックするとプルリクエストの発行者にメールが配信される。
プルリクエストのマージ
レビューアーからの承認が出たら統合ブランチにマージを実行します。マージを実行することで統合ブランチに更新が反映されます。
配信されたメール本文のURLリンクからに該当プルリクエスト画面を開く事が出来ますが、自身で該当のプルリクエストの画面をそのまま開いても同様の表示がされます。
プルリクエストのページに遷移すると、担当者のレビューの下にある「Merge pull request」と書かれた緑色のボタンをクリックします。するとボタンの文字が「confirm」に変化するので、変化した「confirm」ボタンをもう一度クリックします。これで統合ブランチに更新が反映されます。
ページ左上部の「code」のタブからcode画面に遷移して統合ブランチを確認してください。更新が反映しているはずです。