実務でGitHubを利用することになれば、必ずといって良いほど利用されるのが「プルリクエスト」の機能ですが、個人でGitの学習している場合あまり使う用途がなくイマイチ理解できていない方も少なくありません。
そこで本記事では、GitHubを実務で利用する上で最低限知っておきたいプルリクエストの基本的な使い方についてご紹介していきます。
GitHubのプルリクエストとは
Gitに初めて触れる方には聞いたことがない言葉かと思いますが、プルリクエストはGitHubが最初に提供を始めたチーム開発におけるソースコードの変更通知機能です。
プルリクエストを利用することで、他の開発者にGitHub上のリポジトリに対して自分が変更を加えたことを通知することが出来ます。
プルリクエストの機能
GitHubで利用出来るプルリクエストの機能としては、大きく「他の開発者への変更通知」「変更箇所の比較表示」「コメント機能」の3つが挙げられます。
他の開発者への変更通知
プルリクエストを任意の開発者を指定して送ることで、指定した開発者がリポジトリに変更があったことを通知として受け取ることが出来ます。
変更箇所の比較表示
GitHubでプルリクエストを送るとリポジトリ変更前と変更後の差分比較が簡単に行えます。
この機能により、どこに変更を加えたの適切な変更かを他の開発者が判断しやすくなります。
コメント機能
プルリクエストが送られたソースコードにはコメント機能を使って他の開発者からのレビュー内容を記述することも可能です。
変更内容に問題がある場合や、より良い変更方法をチーム内で共有し改善することが出来ます。
プルリクエストの使いみち
プルリクエストは基本的にチーム開発や複数での開発に利用される機能です。
主な利用方法としては、開発用のブランチ(作業場所)を作成し開発者が適宜変更を加えた上で、チームリーダーなどのレビュアーにプルリクエストを送信しマスターブランチ(本番用ブランチ)にマージ(取り込み)を行ってもらうような使い方です。
開発者が誰でもマスターブランチにマージ出来るようになってしまうと、システムが動かなくなってしまう可能性が高くなるため、プルリクエストの機能を使ってしっかりと複数人で動作確認した上で本番環境に取り込むというのが実務では一般的となります。
GitHubでプルリクエストの機能を利用してみよう
では実際にGitHubでプルリクエストの機能を利用する手順をサンプルとしてご紹介していきます。
ローカルにリポジトリをクローン
GitHub上に作成したリポジトリをまずはローカル環境にクローンしておきましょう。
今回のサンプルでは「pullrequest-sample」というリポジトリをGitHub上に作成し、Documentフォルダの配下に「git」フォルダを作成した上でクローンしています。
git clone https://github.com/xxxxx(ユーザー情報)/pullrequest-sample.git
xxxxxの部分は画像の赤で塗りつぶしているユーザー情報が入ります。
ブランチ作成
次にクローンしてきたリポジトリからプルリクエスト用(開発用)のブランチを作成します。
cd pullrequest-sample
先程クローンしたフォルダに移動して
git checkout -b pullreq-test
今回のサンプルでは「pullreq-test」という名前でブランチを新規作成しています。
ファイルの修正・コミット
サンプルのリポジトリには現時点で「README.md」ファイルしか存在しないため、README.mdの内容を書き換えるのに加えて「sample.html」というファイルを新規で追加してみましょう。
README.md
修正前のREADME.mdファイルは下記の記述となっています。
# pullrequest-sample
内容を下記に変更してみました。
# pullrequest-sample-edit ## add content
sample.html
sample.htmlファイルは新規のファイルとして下記の内容で作成しています。
<!DOCTYPE html> <html lang="jp" dir="ltr"> <head> <meta charset="utf-8"> <title>プルリクエストサンプル</title> </head> <body> <h2>見出し2</h2> <h4>見出し4</h4> </body> </html>
ファイルを作成した上でコミットしておきましょう。
git add . git commit -m "プルリク用にコミット"
リモートリポジトリにプッシュ
ローカルリポジトリに対してコミット出来ましたので、修正内容をGitHub上のリポジトリに反映させるためプッシュしておきます。
git push origin pullreq-test
プルリクエストの作成
ここからはGitHub上でプルリクエストの作成を行っていきます。
ローカルからGitHubへプッシュしてしばらくの間は画像の赤枠のように「Compare & pull request」のボタンが表示されるのでこちらをクリックしてプルリクエストの作成を進めていきましょう。
プルリクエストの作成画面が表示されるので、まず上の赤枠でマージブランチが正しいかを確認しましょう。
左側の「base: main」と表示されている方がマージ先のブランチで、右側の「compare: pullreq-test」と表示されている方がコードを修正したマージしたいブランチです。
下の赤枠にはプルリクエストのコメントと内容を記述します。
一般的にはIssue番号や対応内容を記述して、なんの目的でどのように修正したかを記述します。
レビューアを選択
続いて作成したプルリクエストを確認してもらいたい開発者を選択します。
画面右側の「Reviewers」の歯車をクリックし、対象の開発者を選択します。
画像では「Nothing to show」と表示されていますが、チーム開発で同じGitHubのリポジトリを編集するユーザーが登録されていれば、ユーザー名が表示されます。
レビューアーを設定出来たら「Create pull request」ボタンをクリックします。
プルリクエストの確認
プルリクエストが作成出来たら「Pull requests」のタブ右側に数値が表示されるようになります。
プルリクエストの変更内容に問題がなければ「Merge pull request」ボタンをクリックすることで変更内容をマージ先のブランチに反映させることが出来ます。
変更箇所の確認を実施する場合、「File changed」のタブを開くことで修正内容が視覚的に分かりやすく表示されます。
変更箇所に対して、「+」ボタンからコメントを残すことも出来るため、レビュー指摘もコード上に分かりやすく反映させることが出来ます。
さいごに: GitHubのプルリクエスト機能を活用してチーム開発を効率化させよう
本記事では、GitHubのチーム開発では欠かせないプルリクエスト機能の簡単な使い方についてご紹介してきました。
GitHubのプルリクエスト機能はシンプルで視覚的にも分かりやすいため、初心者の方でも扱いやすい機能として提供されています。
プルリクエストを活用してコードレビューを行うことで、バグが混入するのを防いだり、致命的なミスを防ぐだけでなく、コード全体の質を向上させることにも繋がります。
ぜひ積極的にGitHubのプルリクエスト機能を活用してチームでのシステム開発を効率化していきましょう。
時間が経って表示されなくなってしまった場合、「Pull requets」タブの「New pull request」ボタンからプルリクエストを作成することが可能です。