Gitでブランチを切ってプルリクエストしてマージをする流れ

582 回閲覧されました
みなさんこんにちは、jonioです。
私は業務でGit操作をする際はSourcetreeで行っていたのですがマージをする時のプルリクエストがなぜかありませんでした。
職場が変わってマージする際にプルリクエストをしないといけなくなったので「ブランチを切る〜マージ」の流れをメモとして残そうと思いました。
Issuesを作成
プロジェクトは作成したとします。
Issuesタブをクリックします。

すると下記の画面に切り替わるので「New issue」をクリックします。

titleとdescriptionを入力して「Submit new issue」をクリックします。
titleはブランチ名がいいです。

すると下記の画面に切り替わります、「#3」はIssueの番号で自動的に付きます。

あとで管理しやすくなるのでブランチ名はIssueの番号を含んだ方がいいです。(今回だと「コードを修正#3」)
ここからはコマンドでブランチを切ってプッシュまで行います。
ブランチを切る〜プッシュ
下記のコマンドでブランチを切ります、ブランチ名は「コードを修正」とします。
git checkout -b コードを修正#3
そしてコードを変更してプッシュします。
コマンドは下記です。
git add -A
git commit -m "index.htmlのファイルを修正した #3"
git push origin コードを修正#3
2行目でIssueの番号(今回だと#3)は必ず付けます、理由は後で分かります。
3行目の「コードを修正#3」はブランチ名です。
次はGitHubに移動しますがプルリクエストをする前にコードの確認をする人(レビュアー)を追加しないといけません
レビュアーの追加
「Settings」をクリックします。

「Collaborators」をクリックします。

下記の画面に切り替わるので「Add people」をクリックします。

下記の画面に切り替わるので赤枠にGitのユーザー名を入力します。

「Select a collaborator above」をクリックすると対象のユーザーにプロジェクトに参加する承認のメールが来るので承認するとレビュアーにすることが可能になります。
それではプルリクエストに戻ります。
プルリクエスト
「Pull requests」をクリックします。

下記の画面に切り替わるので「Compare & pull request」をクリックします。

下記の画面に切り替わりますが色々と説明しないといけないです。

赤枠はコードを記述した内容を書きます。
黄色枠はコミット内容ですが先ほどコミットする時に「#3」を必ずつけると説明しました。
理由は「#Issueの番号」を付けるとリンクになりコードを確認できるからです。
紫枠からレビュアーを設定できて緑枠からコードを書いた人(自分のこと)を設定します。
これを設定することで自分がプルリクエスを出すとレビュアーにコードレビューの依頼が届きます。
赤枠の中身を書いたら下にある「Create pull request」をクリックすればレビュアーにコードレビューの依頼がメールで届きます。
次はレビュアーで操作します。(今回はわざと自分の別のアカウントがレビュアーになります)
レビュアーの操作
「Pull requests」のタブをクリックすると下記の画面になるので赤枠をクリックします。

下記の画面に切り替わるので「Commits」のタブをクリックします。

下記の画面に切り替わるので赤枠をクリックします。

下記の画面に切り替わるので「Review changes」をクリックすると修正の必要があるのかOKなのかを選択できます。

「Comment」を選択すると修正する内容を入力して「Submit review」をクリックするとコードを書いた人に修正の通知が飛ぶのでコードの修正してプルリクエストをまた出してレビュアーが確認する流れになります。
「Approve」を選択するとコードの修正は必要ありません。
今回はApproveを選択します。
これでマージができるようになるのでここからコードを書いた人の操作になります。
コードを書いた人の操作
「Pull requests」のタブから赤枠の中に入ります。

下記の画面に切り替わるので赤枠をクリックします。

赤枠が下記に切り替わるのでもう一度クリックします。

これでGitHubの操作は終わってコマンドに戻ります。
コマンド操作
下記のコマンドでブランチをmasterに切り替えます。
git checkout master
そして下記のコマンドを叩けばマージは完了です。
git pull