Github

Githubでプルリクエストを処理する

Githubでの共同開発では開発者がプルリクエストを行い、管理者が処理する流れがあります。

プルリクエストにはいろんな意味がありますが、複数人での開発環境においては以下の認識でないかと思います。

管理者へ、指定ブランチに変更内容をマージするように要望する

実際にプルリクエストに関しての全体の流れはこのようになります。

  • 開発者側が機能追加などを完了させる
  • プルリクエストする
  • 管理者やレビュアーがチェック
  • 必要があれば修正
  • ブランチにマージ

ここでは管理者側の視点からプルリクエストを処理していく流れを解説していきます。

Githubでプルリクエスト処理する流れ

プルリクエストを処理するには以下の流れがあります。

  • プルリクエストを確認
  • コンフリクトがないかをチェック
  • 内容確認や、コメント等で内容を精査する
  • プルリクエストをマージ or 却下する

プルリクエストを確認

プルリクエストを処理したい場合、「Pull requests」を押します。
未処理のプルリクエストがある場合、画像のように「Pull request」の部分にラベルが追加されます。
※数字は未処理のリクエストの数

現在未処理のプルリクエスト一覧が表示されますので、処理したいプルリクエストを選択します。

コンフリクトがないかをチェック

まずプルリクエスト自体にコンフリクトがないかをチェックします。
とはいえ、基本的にはGithub自体で判定されるので、あくまでも確認するだけになることがほとんどです。

コンフリクトとは?

コンフリクトは競合、衝突という意味で、その状態でマージした場合に問題が起きることを表しています。

例えば、指定したブランチと、プルリクエストしたブランチで同じ部分を修正していたりする場合に発生します。

プルリクエストを受けた時点で、gitがファイル内容を確認し、現在のマスターブランチと競合が発生しないかのチェックが行われます。
問題がない場合、上記のように「Merge pull request」というボタンが表示されます。

コンフリクトが存在する場合は上記のようになります。

基本的にはコンフリクトがないかを確認してからプルリクエストするようにルールを決めておくなどするのが良いでしょう。

内容確認や、コメント等で内容を精査する

実際にプルリクエストの内容を確認して、どのような変更が行われたかをチェックします。
プルリクエストの「Files changed」というタブを押すことで実際の変更内容を確認できます。

また必要があれば、コードの特定行に対してのコメントも作成できます。

コメントを残したい行にカーソルを持っていくと「+」が表示されますので、押すとコメント入力欄ができます。

コメントを追加したものはConversationsnの方にも表示されますので、コード自体へのコメントがある場合は、コード画面で追加するのが良いかと思います。

また、「Conversation」タブからプルリクエストに対してのコメントを追加できます。
プルリクエストに対しての質問などを書いたり、プルリクエストを承認しない理由を残すなどの使い方があります。

必要な内容を入力し、「Comment」を押すとコメントが保存されます。
もしそのままプルリクエストを却下する場合は「Close with comment」をするとコメントと共にプルリクエストの却下が行えます。

プルリクエストをマージ or 却下する

最終的にマージ内容を確認して、マージするのか、却下するのかを決めて、処理を行います。

プルリクエストを却下する

プルリクエストをマージしないことが決まった場合、プルリクエストを却下します。

コメントページの一番下に「Close pull request」というボタンか、コメントを入力して「Close with comment」でプルリクエストを却下します。

プルリクエストをマージする

ここまでの内容を確認した上でマージして問題がなさそうであれば、「Merge pull request」を押すことでマージ処理が進められていきます。

必要であればマージに対してコメントを追加し、「Confirm merge」を押すと実際にマージが完了します。

プルリクエストしたブランチを削除するかを確認されるので、不要なら「Delete branch」を押します。
Github上でこのブランチを残しておきたいのであれば、何もせずに残しておきます。

更新された内容で問題がないなら、「Merge pull request」を押せば、メインブランチにプルリクエストの内容が反映されます。

-Github
-, ,