プルリクエスト(略してプルリク)と呼ばれてます。
プルリクには大きく2種類存在します。今回はよく使用される、
ブランチをマージしてもらうときに使用するプルリクについて述べます。
ちなみにもう1つは、他のリモートリポジトリをフォークしてクローンし、
内容を変更・修正したとします。その変更・修正内容をフォーク元のオーナの
リモートリポジトリに反映してもらうときに使います。
Contents / 目次
プルリクの種類
上記の通り、プルリクについては2種類存在します。
・ブランチをマージしてもらうとき
・第3者のリモートリポジトリに変更を反映してもらうとき
ブランチをマージしてもらうとき
本記事ではよく使用されるこのケースについて述べます。
第3者のリモートリポジトリに変更を反映してもらうとき
第3者のリモートリポジトリをフォークして自分のスペースにコピーをします。
内容を変更したり、修正したとします。
その、変更・修正内容を第3者のリモートリポジトリにも反映を
リクエストする場合にオーナに対してプルリクを出します。
プルリクの手順
変更・修正用のブランチを作成
変更・修正を行うにあたり、ブランチを準備しましょう。
今回はadd-myfileという名のブランチにしてます。
ブランチ作成についての詳細はこちら。
$ git checkout add-myfile #add-myfileブランチに移動
Work tree(自分のPCディレクトリ)でファイルを変更する
対象のファイルをPC内で変更、修正します。
add, commitしてローカルリポジトリに反映させる。
変更・修正した内容をaddしてステージング、commitして、
ローカルリポジトリのadd-myfileのブランチに反映させます。
詳細についてはこちら。
$ git add . #作業しているディレクトリを対象にしステージングする
$ git commit -m "メッセージ" #コミットする
pushしてリモートリポジトリに反映させる
ローカルリポジトリに反映できたらGithubのリモートリポジトリに反映させます。
詳細についてはこちら。
$ git push origin add-myfile #pushする(originつけ忘れ注意)
Githubリポジトリで変更を確認
pushされたらGithubで変更されていることを確認します。
Github対象リポジトリに移動し、
<>codeタブで対象ブランチを選択。
対象ファイルが変更・修正反映されているかを確認。
Compareで変更点を比較する
Compareを押して、変更・修正前後を表示させて確認します。
変更内容が表示されます。
赤色がbefore, 緑色がafterです。行数表示は左側がbefore, 右側がafterです。
mergeする元と先を選定する
merge元のブランチとmerge先のブランチを選択します。
今回はadd-myfileからmasterへと選択します。
Create pull requestでプルリクを作成する
Create pull requestのボタンを押します。
レビュアと担当者、その他情報を入力します。
create pull requestを押すと下図画面が出てきます。
プルリクのReviewers(レビュア)とAssignees(担当者)を
歯車ボタンから選択します。
その他、LabelsやProjectsなども必要に応じて設定します。
プルリクのタイトルと内容を記載し、プルリクを回覧する。
プルリクのタイトルと内容(マークダウン記法)を記載し、
右下のCreate pull requestを押して回覧します。
プルリクの手順は以上です。
これで、レビュアにプルリク依頼が回覧されて、
問題なければMerge(マージ)されます。
マージするには
レビュアにプルリクの回覧がされます。今回は自分をレビュアとしてマージします。
スペースのページから、Pull requeststs タブ
Conversationタブ内にMerge pull requestの緑のボタンを押せばマージできます。
マージ前にはFiles changedのタブで変更内容を確認したり、
コメントを残せたりします。確認したらViewedにチェックを入れます。
Merge pull requestを押して、下のページに移動します。
必要に応じてコメントを残して、Confirm mergeを押します。
マージされると下図のように表示されます。
最後にpullでリモートリポジトリをローカルに反映する
念の為、マージされるとmasterに変更されたことになります。
pullを実行しておきましょう。詳細はこちら。
$ git pull
終わりに
Githubでプルリクの方法について簡単に述べました。
初心者にはハードルが高く感じるかもしれませんが、
1つずつ理解してもらえれば、大丈夫だと思います。
Have a nice Git & Github life!