PullRequestとは?
PullRequestとは、GitHubの機能で、コードの変更点に関するレビューを関係者に依頼する機能のこと。
PullRequestのやり方
ローカルリポジトリとリモートリポジトリを同期させる
「git status」コマンドで差異がなければOK。差異があればcloneするかpushして整合性を取っておく。
Branchを作成する
ターミナルでローカルリポジトリに移動して、ブランチ作成コマンドを叩く。(ここでのブランチ名は、「develop」とする)
git checkout -b develop
ファイルを変更する
ローカルリポジトリの変更内容をリモートリポジトリに反映させる
ステージングエリアに上げて
git add .
ローカルリポジトリにコミットして
git commit -m "4th lesson: add birthday"
作成したブランチ「develop」から、GitHubのoriginブランチにpushする
git push origin develop
GitHub上にPullRequestができた。
PullRequestの内容を記入してPullRequestする
GitHubのPullRequestの「Compare & pull request」をクリック
変更内容を記載して、「Create pull request」をクリック
「…」から、Copy linkでPullRequestのリンクをコピーして、レビューしてほしい人に送る
先生にチェックしてもらった
Merge pull requestをクリックしてマージする
Confirm mergeでマージを確定する
マージされた。
正しくマージできて、ブランチが不要ならば、「Delete branch」でブランチを削除してもよい。(意図的に残す場合は、そのままにしておいてもOK)
このままだとHEADがブランチを指したまま(*がdevelop側についている)なので、
HEADをmasterに戻しておく。
git checkout master
補足:ブランチを切ってPullRequestした後にファイルを変更して再度PullRequestする場合
branchを切ってPullRequestした後に、指摘を受けるなどして再度ソフトを修正してcommit → PullRequestすると、ブランチのローカルリポジトリ(develop_catweets)とリモートリポジトリ(origin/develop_catweets)は最新の状態になっている。
※ここでのブランチ名は「develop_catweets」とする。
この後で、PullRequestの内容をマージして、マスターのリモートリポジトリ(origin/master)を最新にする。
この段階では、マスターのローカルリポジトリ(master)には、再修正後の変更内容がマージされておらず、環境としては少し古い状態になっている。
この状態で、マスター側にHEADを移そうとすると、「Your branch is behind 'origin/master' by 2 commits」と教えてくれる。(親切!)
※とりあえずHEADはこの段階でmasterに移動する。(〇の位置が現在のHEAD)
整合性をとるために、git pullコマンドでリモートリポジトリの内容をローカルリポジトリに反映させる。
git pull
これでOK。