チームでGitHub 〜プルリクエストとレビューのやり方について〜

# プルリクエストが使えるようになろう

## プルリクエストとは
GitHubにはブランチという作業スペースがあります。
masterブランチが全員の作業スペースで、そこから自分の作業スペースを自由に作成することができます。
チームでGitHubを使う時は、まず以下のような流れになります。

1. masterブランチ（全員の作業スペース）から自分用のブランチを作成する
2. 自分のブランチ（自分の作業スペース）で作業をする
3. 作業が終わったら、作ったものをmasterブランチにマージする  
（自分の作業スペースで作ったものをみんなの作業スペースに持ってくる）

上記の3の工程で作ったものを自由に、みんなの作業スペースに受け入れてしまうと、めちゃくちゃになったり、他のメンバーが意図しないようなものが全員の作業スペースに入ってしまう可能性があります。
そこで、自分が作ったものを皆さん受け入れて下さいという依頼を出します。
この「依頼」をプルリクエストと言います。

それでは、実際にブランチの作成と、プルリクエストについて体験してみましょう。

# 流れ
1. masterブランチから自分の作業用ブランチを作成する
2. 自分のブランチで作業し、コミット・プッシュする
3. プッシュしたら、masterへのプルリクエスト作成する
4. 他のメンバーがプルリクエストを確認して、レビューする

## 1. masterブランチから自分の作業用ブランチを作成する
1. SourceTreeで「ブランチ」をクリック
<img width="1162" alt="スクリーンショット 2019-05-17 7.14.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/c5e17fb9-83a4-c5c6-66ed-407e596eab61.png">

2. ブランチ名を入力し、ブランチを作成する
<img width="1162" alt="スクリーンショット 2019-05-17 7.23.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/aabb7c0f-7012-4bca-f99e-ed3a6fb2e87f.png">
<img width="1162" alt="スクリーンショット 2019-05-17 7.24.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/2ce7acc8-fa06-5a3d-742b-4ff83baa6191.png">

## 2. 自分のブランチで作業し、コミット・プッシュする
3. 自分のブランチで作業し、コミット・プッシュする
<img width="1162" alt="スクリーンショット 2019-05-17 7.26.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/ccad9a85-82a4-3945-49c8-d8fb1f569068.png">

## 3. プッシュしたら、masterへのプルリクエスト作成する

4. GitHubのページに行き、「PullRequest」をクリック
![スクリーンショット 2019-05-17 7.28.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/a88b0e93-bb21-3799-1667-75ae0a4d895f.png)

5. 「New PullRequest」をクリック
![スクリーンショット 2019-05-17 7.29.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/c922de13-75eb-baec-1de3-c04d329b5b57.png)

6. baseでmasterを選択し、compareで自分のブランチを選択する。右のブランチが左のブランチに統合されるイメージです。
![スクリーンショット 2019-05-17 7.30.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/fc4713b3-f557-9f71-1f4f-2407dfac5b94.png)

7. 「Create Pull Request」をクリックする
![スクリーンショット 2019-05-17 7.32.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/cfd7d2ee-b54b-5599-c4ed-704a8e2c7d2e.png)

8. タイトルとメッセージを入力する。それぞれ、自分のプルリクエストの内容がわかるものにしましょう。
入力できたら、「Create Pull request」をクリック
![スクリーンショット 2019-05-17 7.33.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/5c5843d3-da60-ae92-a7f8-aa7320017e25.png)

## 4. 他のメンバーがプルリクエストを確認して、レビューする
### [承認する場合]
1. GitHubの「Pull Requests」をクリックし、プルリクエストを選択する
![スクリーンショット 2019-05-17 7.42.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/8947662b-d070-6177-1501-65c9a5a19519.png)

2. 「Merge Pull Request」をクリック
![スクリーンショット 2019-05-17 7.43.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/c78351f1-87bd-1317-3935-5a8f5bb22856.png)

3. 「Confirm merge」をクリック
![スクリーンショット 2019-05-17 7.44.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/96c40eae-0937-2a03-6a71-1cb915697a06.png)

4. マージしたブランチが不要な場合は、「Delete branch」をクリック
![スクリーンショット 2019-05-17 7.45.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/2f491a49-f9c6-d02f-8557-59e9a5beda07.png)

### [レビューする場合]
1. GitHubの「Pull Requests」をクリックし、プルリクエストを選択する
![スクリーンショット 2019-05-17 7.55.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/299f5b8e-c2fd-b402-6c05-665f73a4ae8f.png)

2. 「File changes」を選択し、変更内容をレビューする
![スクリーンショット 2019-05-17 7.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/3efdd2c7-9de5-86f2-fed0-db93363e7e50.png)

3. 気になる箇所があれば、行の＋アイコンをクリックし、コメントを入れる。
コメントを入れたら、「Start review」をクリック
![スクリーンショット 2019-05-17 7.57.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/20889df9-4efb-f54a-717d-7f0fad799c58.png)

4. レビューが完了したら、レビュー結果を送信する。「Finish your review」をクリックする。チェックボックスから、該当するものを選択。
選択したら、「Submit reviw」をクリックする

- Approve：承認
- Request Changes：変更の要求
- Comment：コメント

![スクリーンショット 2019-05-17 8.02.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/f6e619a3-f155-789b-4749-e8d1f2254a2c.png)

### [変更の要求を受けた場合]
1. 変更内容を確認し、修正した後、コミット・プッシュする
2. プッシュしたら、GitHubの「Pull requests」の該当するプルリクエストを選択する
![スクリーンショット 2019-05-17 8.18.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/7f179382-e69b-9bcf-e5d4-0fc6670efc7e.png)
3. Re-request reviewをクリックする。これで、再度プルリクエストが投げられた状態になります。
![スクリーンショット 2019-05-17 8.23.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418112/8699eb2a-ecfc-553d-0590-497e4589456c.png)