1人ではじまり1人で終わるPull Request
今回は一人でできるGitHubのPull Requestの練習について紹介します。
*当記事は実践的なチーム開発を想定した記事でありません。私が個人でPull Requestの練習をした内容をまとめたものです。
Pull Requestについて
Pull RequestとはGitHubの機能の一つでソースレビューや作成もしくは変更したソースコードの反映を行うために利用される機能です。
最近ではチーム開発にGit GitHubの導入をしている企業は多くなっています。
Gitのバージョン管理はとても優れていますが、開発に携わる人間が各々ソードコードの新規作成や変更などを自己判断で反映を行った場合、チームメンバーはひとつひとつ変更内容の確認を行う必要があり、チーム開発においてとても非効率的な作業が発生します。また、チームのリーダーや有識者によるコードレビューがない場合は変更した内容により障害の発生原因となる場合があります。
なのでPull Requestが存在します!
Pull Requestの流れは
上記のような流れで反映を行う前に人間を挟むことにより反映前にコードレビューが必ず発生するようになります。
雑な資料で申し訳ありません。
Pull Requestを実践する
はじめに
-
Gitのインストール
-
GitHubアカウント
上記項目が未完了の場合、先に完了させましょう。
リポジトリの作成を行う
![リポジトリ](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101239659-bc2bae00-372c-11eb-983d-601f3013b28b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7c5f4fe58c854138895747f44ee7b3d1)
まずはじめにリポジトリの作成を行います!
リポジトリはPublicかPrivateお好きな方をお選びください。
![作成](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101239738-5986e200-372d-11eb-85d7-08e5c3340cd2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1986563402d655862be79b5c20d74f30)
次にローカルのリポジトリとリモートのリポジトリの紐付けを行います。
私はGitHubとSSHで接続をしているので、SSHを選択していますがお使いの環境にあわせて接続形式を選択してください。
![画面](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101244488-2dc62500-374a-11eb-953b-00a8da31044a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=18a4f2a03877791675a3b22bb773e7bd)
リモートリポジトリにローカルの内容をpushを行い、GitHubのリポジトリの画面が更新されていれば準備完了です。
これで1人でPull Requestの練習を行う準備が完了しました!
Pull Requestを出してみる
まずローカルリポジトリに新規ブランチを作成しましょう。
git checkout -b develop
develop branchの作成ができました。次にソースコードを編集または新規作成を行い、コミットを行いましょう。
コミットが完了したらリモートリポジトリにpushしましょう。
git push origin HEAD
![gamen](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101245130-0ffabf00-374e-11eb-9c5c-5c321dcf30f7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=822a0ed3e64e08455125f0f41f3d2c09)
-
develop branchがpushされていることを確認します。Compare & pull requestボタンがからPull requestの画面に移動できます。今回はこのボタンからの遷移はおこないません。
-
今回はPull requestを行うため pull requestsタブからpull requestを行います。
![画面2](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101245610-5ef62380-3751-11eb-8b99-40d6b187db57.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c4ea0425e2a7d8e19bd1fec2e3b7ea95)
New pull requestボタンを押してpull requestを行います。
![画面3](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101245790-b052e280-3752-11eb-813f-0df7e9f8de23.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=af4c517304a739514961c919b9454813)
-
Merge先のbranchとMergeするbranchを指定します。今回はdevelop branchをmain branchにMergeします。
-
commitのメッセージ内容を確認することができます。今回はcommitが1つなので1つしか表示されていませんが、commitの内容が複数ある場合は複数表示されます。
-
変更したファイルの内容を確認することができます。今回は新規のファイルを作成したので追加した内容のみ表示されています。一部削除をした場合は削除した内容が表示されます。
-
Create pull requestボタンを押すことで確認ページに移動することができます。
![gamen3](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101269821-1d4b9400-37b6-11eb-9319-28b3d189b120.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5c2f40fada095bae2d1766f4617f4ad6)
-
Pull requestのタイトルを記述する項目です。初期時はコミットの内容が表示されます。この項目はわかりやすい内容にしましょう。
-
Pull requestのコメント内容を記述する項目です。①でタイトルの記述を行い、当項目でより詳しい内容を記述します。記述内容としてはどのような変更をしたのかもしくはレビューをして欲しい観点についてを記述をします。
-
pull requestの内容を分別する。
-
Reviewers レビューをしてもらう人を選択する。
-
Assignees 担当した人間を選択する。
-
Labels どうのような作業かを分類かを選択する。
-
Proects どのプロジェクトにたいしてのpull requestかを選択する。
-
Miletone いつまでの期限の作業かを選択する。
-
Linked Issue Issueごとに作業を管理している場合、どの作業かを選択する。
*今回は1人で始まり、1人で終わるpull requestなのでReviewersは選択することはできません。
上記の内容が完了したらCreate pull requestボタンを押しましょう!
![4](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101279213-09c71a00-3804-11eb-8df0-e99418012229.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7be91ef86b5f8023db80b317c052130e)
ついに最後の画面です。
本来であればレビュー担当者がコメントを記述することができますが、今回は1人での作業のため、自身のコードレビューを行いコメントをしましょう。
Merge pull reqestボタンを押すことでdevelop branchをmain branchにMergeすることができます。ボタンを押すとpull reqeustのコメントを記述することができます。コメントの記述が完了したらConfirm Mergeボタンを押しましょう。
![5](https://qiita-user-contents.imgix.net/https%3A%2F%2Fuser-images.githubusercontent.com%2F51228144%2F101279266-6fb3a180-3804-11eb-8c83-644e0c139d8f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=def07d3156b92d319c610f6be599390a)
最後にdevelop branchを削除してGitHubでの作業は完了です!
リモートをローカルに反映する
リモートリポジトリとローカルリポジトリで差があるので、リモートリポジトリの内容をローカルリポジトリに反映しましょう。今回の場合、リモートリポジトリのmain branchはdevelop branchをMergeした状態です。一方でローカルリポジトリのmain branchはdevelop branchをMergeしていません。
なので、リモートリポジトリのmain branchをローカルのmain branchにpullしましょう。
git checkout main
まずmain branchに移動します。
git pull origin main
次にリモートのmain branchをローカルのmain branchにpullします。
git log
最後にMergeが正常に行えているかを確認します。
以上が1人で始まり、1人で終わるPull request入門です。
pull requestの練習がしてみたいが、やり方がわからないという人や擬似チーム開発を1人で練習してみたいひとは参考にしてください。