##コードレビュー
前回の続きです。
【前回】:【Git】GitLabで1人コードレビューごっこしてみた①(GitLab登録からCloneまで)
>>>引用
①[ 開発者 ] 作業対象のソースを clone または pull します。
②[ 開発者 ] 作業用のブランチを作成します。
③[ 開発者 ] 機能追加、改修といった開発作業を行います。
④[ 開発者 ] 作業が完了したら push します。
⑤[ 開発者 ] プルリクエストを作成します。
⑥[ レビュー・マージ担当者 ] 通知されたプルリクエストから変更を確認しレビューします。
⑦[ レビュー・マージ担当者 ] レビュー結果を判断し、必要ならば開発者にフィードバックします。
⑧[ レビュー・マージ担当者 ] レビューの結果、問題がない場合はマージします。
⑨[ レビュー・マージ担当者 ] レビューの結果、対応自体が不要となるなど、プルリクエスト自体が必要ない場合はクローズします。
今回は②~⑤までです。
⑥に進む前に一度マージまでしてしまおうと思います。
##ブランチを作成
MergeRequestを送るには、
リモートとローカルでお互いに紐づいた状態のブランチがそれぞれ必要です。
作成の仕方にはいくつか方法があります。
まずは作業したいディレクトリに移動しておきます。
cd "作業ディレクトリ"
###GitLab上でリモートにブランチを作ってローカルに登録
GitLab
のBranches
からNew Branch
すれば作れます。
その場合、ローカルでリモートの変更を確認する必要があるので、
fetch
というのを行います。
####fetchとは?
リモートリポジトリで更新された最新情報を
ローカルリポジトリに持ってくるコマンドのこと
【引用元】:git fetchとは
次に、下記のfetchコマンドを行った後に、
git branch -a
してあげると
先程GitLab上で追加したリモートリポジトリが追加されています。
git fetch
ローカルのブランチは下記コマンドで作成できます。
ついでに作業ブランチも作成したローカルのブランチに切り替わるので大変便利です。
※checkout (チェックアウト)とは作業ブランチを切り替えることです。
git checkout -b ローカルに作成するブランチ名 origin/GitLabで作成したリモートのブランチ名
これで、masterをCloneしたリモートのブランチを、ローカルに登録することができました。
###ローカルのブランチを基にしたブランチをローカルに作ってリモートに登録
Git Bash上だけで完結させることが可能です。
基となるローカルのブランチに作業ブランチを移します。
一例として、ローカルのmaster
を基に作ります。
git checkout master
ブランチを作成してチェックアウトします。
git checkout -b 作りたいブランチの名前
これでローカルにブランチを作成したついでに作業ブランチを切り替えることができました。
git branch -a
を行うと確認できます。
最後に作成したローカルのブランチをリモートにPushします。
git push -u origin 先程作成したローカルのブランチ名
これで、リモートにローカルのブランチを登録できました。
###リモートのブランチを基にしたブランチをローカルに作ってリモートに登録
こちらもGit Bashだけで完結させるパターンです。
みんなで作業しているリモートのmasterブランチを
ローカルに作業用ブランチとして持ってくる工程なので、
今後チーム開発する際に、これは結構使いそうな気がします。(そうでもない?)
基本的にGitLab上でブランチを作成した後の作業と さほど変わりませんが、
このやり方は最後にリモートにPushする必要があります。
git checkout -b ローカルに作成するブランチ名 origin/リモートのブランチ名
git push -u origin 作成したブランチ名
##いよいよMargeRequest
MargeRequest自体はGUIでの操作なので楽勝です。(私がCUI苦手なだけですが、、、)
マージしたいブランチを選択した状態で、
プロジェクトの画面からCreate merge request
を選択します。
※どのブランチをマージするかは下記画像箇所から変更できます。
後は適当にタイトルやら内容やらを書いてRequestを送ります。
本来はレビュー担当者がコードの差分を確認してマージするのだと思いますが、
練習なのでそのままMargeしてみます。緑のMarge
を押せばOKです。
無事マージ完了です。
全く差分の無いブランチをマージしようとすると"まだ何も変更ないよ"みたいな説明文がでます。
##ブランチを消す
練習で何回もブランチ作っては消してを繰り返したので消し方もメモしときます。
###リモートブランチ削除
git push --delete origin リモートのブランチ名
###ローカルブランチ削除
git branch -D ローカルのブランチ名
###GitLab上でリモートブランチを消した場合
ただのgit fetch
では反映されませんでした。
git fetch -p
##偉大な参考リンク様
リモートで削除済みのブランチをローカルからも削除する
git コマンド branchの作り方
Gitのリモートブランチを削除するまとめ
Gitでローカルブランチを削除する