GitHubでpull request作ってreviewしてもらってmergeする
開発中のコードをお友達に確認してもらいたいときGitHubのpull requestは便利。個人で開発してても追加した機能のまとまりごとにpull request作っておくと後から見たときわかりやすいからみんなにおすすめな機能。今回はpull requestの作成からreview、mergeするまでの流れを紹介。
Unity projectをGitで管理する方法はこちらの記事で紹介。今回はこの記事の続編みたいなもの。
Pull requestの機能
GitHubのpull requestはこのサルに聞いてください。クワマイより高等な生物です。
やりたいことをissueに書いておく
まめな人はファイルを編集する前にどんな編集をしたいかissueに書いておくのがおすすめ。実際に手を動かす前にissueにやることリストを書いたり開発で困ったことを書いて相談したりできる。今回はREADMEがほしいというたいへんシンプルなissueを作ってみた。
Issueを使ったタスク管理について詳しくはこちら。
Branchを作ってadd、commit、push
main branchからadd_readme branchを作成してcheckoutした。いきなりメインで使っているmain branchにcommitするとそのcommitにバグがあったりしたとき面倒なのでbranchを分けておく。このようになにか手を加える前にbranchを分けておくとmain branchは常にバグのない状態を保つことができる。
今回はREADMEを追加したのでchangesに表示されていることがわかる。またbranchの先頭はUncommitted Changesと表示されており、まだcommitしていない変更があることがわかる。
追加したREADMEはこんな感じ。
Commit、pushするとこんな感じ。
Pull requestの作成
PushしたGitHubのリポジトリページに行ってpull requestを作成する。Pull requestsをクリックすると出てくるNew pull requestボタンをクリック。ちなみにその上に表示されているCompare & pull requestでも同じ。Branchに新しいcommitがあると親切に表示してくれる。
add_readme branchの変更をmain branchに反映させたいのでbaseをmain、compare(比較対象)をadd_readmeにする。
下にadd_readme branchで行ったcommit一覧とmain branchとの差分(変更された場所)が表示される。問題なさそうであればCreate pull requestボタンをクリック。
Pull requestのタイトルと説明文を書く。今回はREADME追加しただけだから大した変更じゃないけど、手を加えたファイルや機能についてわかりやすく説明する。Reviewersにはpull requestの変更箇所を見てほしい人を追加する。今回は一人しかいないリポジトリなのでレビューしてくれるお友達がいない。悲しい。issueと同様asignees(担当者)やlabelsが追加できる。詳しくは過去のブログへ。
ちなみに上記画像のようにclose #1
と書くと、このpull requestがmergeされた際にissue #1が自動的にcloseされる。#1とは個々のissueに割り振られた番号でさきほど作成したissueのタイトルの横に表示されている。
一通り入力し終えたらCreate pull requestボタンをクリックして完成。
Pull requestをreview
先ほどの画面でreviewersに自分が追加された場合はreview(動作確認とかチェック)してあげる。僕はひとりぼっちだけどbotが作成したpull requestがあったのでreviewしてみる。
自分がreviewersに追加されるとpull requestページにAdd your reviewというボタンが表示されるのでクリック。
変更箇所が一覧で表示されるのでreviewする。変更されたコードにカーソルを合わせるとプラスボタンが表示されるのでクリックしてコードの特定の行にコメントを残すことができる。Start a reviewボタンをクリックするとコメントが下書き状態になる。コメントは後で一気に送信できるので気になるところにコメントをつけていく。
なにか注文があれば具体的にどこをどう直すべきかコメントできる機能があるので便利。こちらの記事にたいへんわかりやすくまとまっていました。
最後に右上のFinish your reviewをクリックすると全体的なreviewのコメントを残すことができる。コメント欄の下にあるApproveをクリックするとpull requestの変更箇所を承認したことになる。Commentはただのコメント、Request changesは変更を要求するという意味。
Submit reviewボタンをクリックするとこんな感じに表示される。コードに対するコメントには個別に返信を送ることができるし、話し終わったらResolve conversationを押すことで閉じることができる。
Pull requestをmergeする。
Pull requestページの最後の方にあるMerge pull requestボタンをクリック。
Confirm mergeを押して確定。ここで適宜commitメッセージを変更したりできる。
Merge後にbranchが不要だったらDelete branch。
GitHubのリポジトリページを見ると無事mergeされていることが確認できる。
ローカルリポジトリ側でもfetchするとmergeされたことが確認できる。