プッシュ
まずはローカルリポジトリの内容をリモートリポジトリに反映させる必要があります。その操作をプッシュと言います。
プッシュを行うとリモートリポジトリにローカルリポジトリで作成したブランチと同じブランチが作成され、さらにはローカルとリモートリポジトリのブランチ同士が連携するように設定されます。
プッシュコマンド
1 |
git push [-u] プッシュ先のリモートリポジトリ名 プッシュするブランチ名 |
プッシュ先のリモートリポジトリ名は一般的には「origin」という名前になっていることが多いでしょう。
-uオプション
このオプションをつけると次回以降に「git push」だけでプッシュができるようになるので頻繁にプッシュする必要がある場合は付けておくと良いでしょう。
プルリクエストとは?
作成したブランチを別のブランチに取り込み(マージ)を依頼することです。(ややこしいですが、基本的にはローカルで作成したブランチを一旦リモートにプッシュしてリモートのローカルと同じ名前のブランチと同期し、そこからリモートのmasterブランチにリクエストをするイメージです。)
相手の視点から見たら他人のリポジトリで変更された内容を取り込むことになるのでプル(取り込み)の依頼という意味で「プルリクエスト」という表現になります。自分がプロジェクトに対して行なった変更を他の開発者に対してお知らせしてその内容についてレビューできる状態にします。レビューの結果問題なかった場合はマージが行われます。
ブランチに関しては下記の記事で解説しています。
プルリクエストする手順
- ローカルのmasterブランチを最新の状態に更新する。
- ローカルで自分が開発する用のブランチを作成する。
- 必要な変更(開発)を実施してコミットする。
- ローカルリポジトリをリモートリポジトリに対してプッシュをする。
- GitHub上でプッシュされたブランチを選択してマージ先(ベースブランチ)に対してプルリクエストを作成する。
- レビュアーがレビューをして問題なければそのブランチはベースブランチに取り込まれます。
- その後、そのブランチは必要なくなるのでブランチの削除を実施します。
プルリクエストの状態
プルリクエストには「クローズ状態」と「オープン状態」があります。
クローズ状態
マージをすると自動的にこの状態なります。また、プルリクエストをマージせずに取り下げた場合もこの状態になります。
取り下げた場合は、後でプルリクエストを復活させることも可能です。
オープン状態
プルリクエストが作成されてマージ待ちになっている状態のことです。
レビュアーについて
プルリクエストする際は「レビュアー」を選択することができます。
レビュアーに指定できる条件としては「リポジトリ」の「コラボレーター(共同編集者)」になっているアカウントで、GitHubの設定画面にて設定することが可能です。コラボレーターはそのアカウントにプッシュする権限も持ちます。
なお、リポジトリの持ち主(オーナー)はレビュアーになれないので注意しましょう。
GitHubのプルリクエスト画面
Files Changed
変更前と変更後のソースの状態の差分を比較することができます。
Commits
変更内容を時系列に沿って見ることが可能です。変更が多い場合には有効かもしれません。
レビュー
「Files Changed」の特定行のプラスボタンを押しコメントし、「Start a review」というボタンを押すことでレビューを追加することが可能です。この時点ではまだ個人のレビューは未確定になります。レビュアー自身はコメント内容を閲覧することができますが、まだレビューイ(レビューを受ける人)はコメント内容を閲覧することができません。
画面右上の「Finish your review」というボタンを押すことで個人のレビューを確定させることができ、レビューイはコメントを閲覧できるようになります。
レビュー結果
レビューの結果は下記3種類のうちからいずれかを選択することができます。
- Comment
- Approve
- Request changes
Comment
承認せずにコメントをつける。相手の書いたプログラムに対して疑問点がある場合に使います。
なお、プルリクエストを行なった本人はこの動作しか行えません。
Approve
承認する。相手のプログラムを誉める場合とかに使います。
Request changes
修正依頼をする。相手のプログラムに指摘事項がある場合に使います。
この記事へのコメントはありません。