プルリクエストとは何か
プルリクエストは、ブランチの変更を main に取り込んでほしい、と他の人に頼む仕組みです。取り込む前に、他の人が変更を読んで、意見を書けます。
レジの税率を直すとします。1人で直して main に入れると、間違いがそのまま本番に出ます。もう1人が読めば、その前に気づけます。
このレッスンのゴール
メモ
変更をプルリクエストで提案し、他の人の変更をレビューすることができる。
大事な言葉
| ことば | いみ | れい |
|---|---|---|
| プルリクエスト | ブランチの変更を取り込んでほしいという依頼と、その話し合いの場(pull request) | |
| レビュー | 他の人の変更を読み、意見を書くこと(review) | |
| 承認 | この変更を取り込んでよい、という返事(approve) | |
| 差分 | 2つの版の違い(diff) | git diff main reduced-tax |
| ブランチ保護 | main に直接 push できないようにする設定 |
学生が入力するセルは、このプレビューでは空白です。
プルリクエストは4つの手順で進む
手順は4つです。ブランチを作って変更し、push します。次に、Gitea の画面でプルリクエストを開きます。他の人がレビューし、直す点があればブランチに足します。承認されたら、マージします。
提案する変更を用意する
練習用に、税率を直す変更を作ります。名前をまだ教えていないなら、レッスン1の2行を先に打ってください。
まず src と tests の2つのフォルダを作ります。main に、計算の関数と、そのテストを置きます。
リポジトリを作る
git init -q -b main reviewここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
フォルダを2つ作る
mkdir -p review/src review/testsここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
計算の関数を書く
printf "def tax(price):\n return price * 1.1\n" > review/src/shop.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
テストを書く
printf "from shop import tax\n\ndef test_tax():\n assert tax(100) == 110\n" > review/tests/test_shop.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
まとめてステージに置く
git -C review add .ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
main の最初のコミット
git -C review commit -q -m "ショップの計算を始める"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
提案は、ブランチの上で作る
reduced-tax というブランチで、税率を8%に直します。関数とテストを、同じ変更で直すのが良い習慣です。
sed -i は、ファイルの中の文字を置き換えるコマンドです。
ブランチを作って移る
git -C review switch -c reduced-taxここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
関数を直す
sed -i 's/1.1/1.08/' review/src/shop.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
テストを直す
sed -i 's/110/108/' review/tests/test_shop.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
変更をコミットする
git -C review commit -q -am "軽減税率に合わせる"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
レビューする人が最初に見るもの
レビューする人は、まず「何が入るのか」を見ます。log main..reduced-tax は、取り込まれるコミットの一覧です。
diff --stat は、変わったファイルと行数の要約です。変更が小さいほど、読みやすく、間違いを見つけやすくなります。
取り込まれるコミット
git -C review --no-pager log --format="%s" main..reduced-taxここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
変更の大きさ
git -C review --no-pager diff --stat main reduced-taxここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
レビューでよく使う確認項目
| 確認すること | なぜ |
|---|---|
| 題名が短く、何をするかが分かる | 一覧で、内容がすぐ分かるため |
| 変更が大きすぎない | 大きいと、見落としが増えるため |
| 自分以外の人が承認している | 1人の思い込みを防ぐため |
| src を変えたら、tests も変えている | 直したことを、確かめるため |
| パスワードなどの秘密が入っていない | 履歴に入ると、消せないため |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
レビューを「人を責める場」だと思う人が多くいます。目的は、変更をよくすることです。「ここが分かりません」「こう直すのはどうですか」と、変更について書きましょう。