Git

GitHubでプルリクエストによるレビュー機能を使ってみた

GitHubには、プルリクエストという、他人にコードレビューをしてもらってからマージする機能がある。

今回は、レビュー対象のfeatureブランチをmasterブランチにマージする際に、プルリクエストの送信/コメントの記入/マージを行ってからマージしてみたので、その手順を共有する。

前提条件

下記記事の手順を、リモートリポジトリ名=git-github-pullrequestとして実行済であること。

Gitでプロジェクトを作成しGitHubにpushしてみたGitとは、プログラムのソースコードなどをバージョン管理するためのツールで、多くの開発現場で利用されている。また、Gitで管理し...

また、下記記事の手順の「更新後ファイルをfeatureブランチにコミット」までの手順を、リモートリポジトリ名=git-github-pullrequestとして実行済であること。

Gitでブランチを利用して並行開発してみたGitでは、ブランチを利用することで、並行開発を行うことができる。今回は、ブランチを新規作成し、新規作成したブランチ上でファイルの追加・...
  1. featureブランチの内容をリモートブランチへ反映
  2. プルリクエストの送信
  3. プルリクエストに対するコメントの記入
  4. プルリクエストのマージ

featureブランチの内容をリモートブランチへ反映

GitHubでプルリクエストを送信するには、マージ対象のブランチ(ここではfeatureブランチ)をリモートブランチに反映する。その手順は以下の通り。

1) 「git branch」コマンドを実行し、今いるブランチがfeatureブランチであることを確認する。
featureブランチのpush_1

2) 「git remote -v」コマンドを実行し、リモートリポジトリのURLとそのショートカット名(origin)を確認する。
featureブランチのpush_2

3) 「git push (リモート名) (ブランチ名)」を実行し、ローカルリポジトリ(featureブランチ)の内容をリモートリポジトリに反映する。
featureブランチのpush_3

4) GitHub上のリモートリポジトリを確認すると、以下のように、featureブランチの内容がリモートリポジトリに反映されていることが確認できる。
featureブランチのpush_4_1

featureブランチのpush_4_2 featureブランチのpush_4_3 featureブランチのpush_4_4



プルリクエストの送信

レビュー依頼を行うプルリクエストの送信手順は、以下の通り。

1)「Compare & pull request」ボタンを押下する。
プルリクエストの送信_1

2) 「Compare & pull request」ボタン押下後、以下の画面が表示されることが確認できる。
プルリクエストの送信_2_1

上記画面の下には、以下のように、変更した画面の差分が表示されていることが確認できる。
プルリクエストの送信_2_2

3) マージ元/マージ先ブランチを設定し、レビュー依頼等のコメントを記載した後で、「Create pull request」ボタンを押下する。
プルリクエストの送信_3_1

なお、上記画面上ではReviewersを指定できていないが、実際にレビュー依頼する際は、Reviewersの指定をする。
プルリクエストの送信_3_2

4) 「Create pull request」ボタンを押下すると、以下の画面が表示される。
プルリクエストの送信_4



プルリクエストに対するコメントの記入

プルリクエストされたレビュー依頼に対し、レビューコメントを記入する手順は、以下の通り。

1) リモートリポジトリの対象リポジトリを開き、「Pull Requests」タブを押下する。
プルリクエストへのコメント_1

2) レビュー対象のプルリクエストを選択する。
プルリクエストへのコメント_2

3) 画面下方のコメント欄にレビューコメントを記載し、「Comment」ボタンを押下する。
プルリクエストへのコメント_3

4) 以下のように、入力したコメントが表示されることが確認できる。
プルリクエストへのコメント_4



プルリクエストのマージ

プルリクエストで指定されたマージ元ブランチをマージ先ブランチにマージする手順は、以下の通り。

1) プルリクエストを開いた状態で、「Merge pull request」ボタンを押下する。
プルリクエストのマージ_1

2) 「Confirm merge」ボタンを押下する。
プルリクエストのマージ_2

3) 以下の画面に遷移し、featureブランチがmasterブランチにマージされたことが確認できる。
プルリクエストのマージ_3

4) 以下のように、featureブランチの内容がmasterブランチにマージされたことが確認できる。
プルリクエストのマージ_4_1

プルリクエストのマージ_4_2 プルリクエストのマージ_4_3

5) 以下のように、featureブランチはマージ後も残っていることが確認できる。
プルリクエストのマージ_5

その他、プルリクエストでコンフリクトが発生した場合の対応方法は、以下のサイトを参照のこと。
https://qiita.com/unaginokabayaki/items/50d047f584f65acc901e

要点まとめ

  • GitHubのプルリクエストを利用すると、他人にコードレビューをしてもらってからマージすることができる。
  • プルリクエストの送信/コメントの記入/マージは、全てGitHubの画面上で行う。