こんにちは、ECF Techブログ
担当 Michiです。
またまたGitシリーズ。これで第7回になります。Gitの花形機能ともいえるプルリクエスト編です。よろしくお願いします。
本記事は、Gitシリーズ連載記事の続編となっています。もし、最初からご覧になりたい方がいましたら、下のリンクをご活用ください。
対象読者
- コマンドプロンプトのコマンド
dir
やcd
などが使える方 - バージョン管理について知りたい方
- Gitを使った
clone
やcommit
、push
をしたことがある
レビューをより効率的に
システム開発を行なうにあたり、ソースコードのレビューは欠かせません。
- ソースコード:プログラムが書かれたファイル。
- レビュー:プログラムを第3者の目で確認すること。
ですが、実際のシステム開発現場は多忙を極め、レビューが後手に回ることもしばしば。
今回ご紹介するプルリクエストは、そんなレビューの煩雑さを軽減し、効率よく行うためのしくみを提供するものです。
では早速やってみましょう。
C:\work01\hello_repo
フォルダに移動し、新しいブランチを作るため、次のコマンドを実行します。
C:\work01\hello_repo>git checkout -b developD Switched to a new branch 'developD'
git checkout
コマンドは、ブランチの移動をするものですが、-b
オプションをつけることで、新規のブランチの作成とそのブランチへの移動の2つの動作を行なってくれます。
program02.txtのファイルを開き、次のようにしましょう。
表示するための機能A 表示するための機能B 表示するための機能C 表示するための機能d-1 表示するための機能d-3
ファイルが編集できたら、コミットします。
C:\work01\hello_repo>git add . C:\work01\hello_repo>git commit -m "機能Dを追加" On branch developD nothing to commit, working tree clean C:\work01\hello_repo>
続いてリモートリポジトリへPushします。この時、リモート側のリポジトリはdevelopDとなることに注意しましょう。次のコマンドを実行します。
C:\work01\hello_repo>git push origin developD
実行結果
Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 372 bytes | 186.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'developD' on GitHub by visiting: remote: https://github.com/MichiharuT/hello_repo/pull/new/developD remote: To https://github.com/MichiharuT/hello_repo.git * [new branch] developD -> developD C:\work01\hello_repo>
無事成功しました。メッセージ中には「プルリクエストを作成しましょう。」というメッセージもあります。
作業フォルダでの作業は終わりです。
では次に、WebでGitHub上のリポジトリを開きます。「Compare & pull request」というボタンが確認できます。クリックします。
プルリクエスト作成ページです。コメントを記入し、「Create pull request」をクリックします。
これで、プルリクエストができあがりました。
ここからはレビューする人(レビュア)の作業です。本記事では1人のGitHubアカウントで動作させていますが、本来はレビュー権限を持つユーザが自身のアカウントで行います。
Pull requestタブを確認すると、次の画面を確認できます。「Review request」をクリックします。
レビュアは、ソースコード中にコメントを残していくことができます。+のボタンを押すと、その行に対するコメントを追記することができます。
「+」をクリックしたらメッセージを入力し、「Start a review」をクリックします。
必要なレビューが終わったら、「Finish your review」をクリックします。メッセージを入れるウィンドウが出るのでメッセージを入れ、「Submit review」をクリックします。
レビューが完了しました。pull requestの画面は次のようになります。
レビューを確認した作業者は自身のローカルリポジトリで修正を行ないます。
作業フォルダC:\work01\hello_repo
に移動し、program02.txtを開いて、次のようにします。
表示するための機能A 表示するための機能B 表示するための機能C 表示するための機能d-1 表示するための機能d-2 表示するための機能d-3
再度コミットし、Pushします。
C:\work01\hello_repo>git add . C:\work01\hello_repo>git commit -m "機能Dレビュー後修正" [developD 9def43b] 機能Dレビュー後修正 1 file changed, 1 insertion(+) C:\work01\hello_repo>git push origin developD Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 378 bytes | 126.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), completed with 1 local object. To https://github.com/MichiharuT/hello_repo.git 79d0a12..9def43b developD -> developD C:\work01\hello_repo>
作業者はGitHubのページをブラウザで開き、再度コメントを記します。
ここからまた、レビュアの作業になります。
レビュアはPull requestの画面へ移動し、修正箇所を確認します。「表示するための機能d-2」が追加されていることを確認します。
内容を確認し問題がなければ、「Confirm merge」をクリックします。
マージが完了しました。「Delete branch」をクリックすると、該当ブランチ(ここではdevelopD)を削除することもできます。
これで一連のプルリクエスト関連作業が完了です。
おわりに
本日はここまでとさせていただきます。最後までご覧くださりありがとうございました。プルリクエストを活用することで、レビューを効率化し、よりよいプログラムの作成が進むといいですね。最近はレポートの提出と添削に活用することもあるとか。。。。
将来はマークダウンでレポート提出。なんていうのも素敵ですね。(笑)
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。