7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】GitLabで1人コードレビューごっこしてみた②(branch作成からMergeRequestまで)

Last updated at Posted at 2019-12-08

##コードレビュー

前回の続きです。
【前回】:【Git】GitLabで1人コードレビューごっこしてみた①(GitLab登録からCloneまで)

プルリクエストを使った開発プロセス

>>>引用

①[ 開発者 ] 作業対象のソースを clone または pull します。
②[ 開発者 ] 作業用のブランチを作成します。
③[ 開発者 ] 機能追加、改修といった開発作業を行います。
④[ 開発者 ] 作業が完了したら push します。
⑤[ 開発者 ] プルリクエストを作成します。
⑥[ レビュー・マージ担当者 ] 通知されたプルリクエストから変更を確認しレビューします。
⑦[ レビュー・マージ担当者 ] レビュー結果を判断し、必要ならば開発者にフィードバックします。
⑧[ レビュー・マージ担当者 ] レビューの結果、問題がない場合はマージします。
⑨[ レビュー・マージ担当者 ] レビューの結果、対応自体が不要となるなど、プルリクエスト自体が必要ない場合はクローズします。

今回は②~⑤までです。
⑥に進む前に一度マージまでしてしまおうと思います。

##ブランチを作成
MergeRequestを送るには、
リモートとローカルでお互いに紐づいた状態のブランチがそれぞれ必要です。
作成の仕方にはいくつか方法があります。

まずは作業したいディレクトリに移動しておきます。

作業ディレクトリに移動
cd "作業ディレクトリ"

###GitLab上でリモートにブランチを作ってローカルに登録
GitLabBranchesからNew Branchすれば作れます。

その場合、ローカルでリモートの変更を確認する必要があるので、
fetchというのを行います。


####fetchとは?

リモートリポジトリで更新された最新情報を
ローカルリポジトリに持ってくるコマンドのこと

【引用元】:git fetchとは


次に、下記のfetchコマンドを行った後に、
git branch -aしてあげると
先程GitLab上で追加したリモートリポジトリが追加されています。

リモートリポジトリの情報を取得
git fetch

ローカルのブランチは下記コマンドで作成できます。
ついでに作業ブランチも作成したローカルのブランチに切り替わるので大変便利です。
※checkout (チェックアウト)とは作業ブランチを切り替えることです。

ローカルにブランチ作成、ついでにチェックアウト
git checkout -b ローカルに作成するブランチ名 origin/GitLabで作成したリモートのブランチ名

これで、masterをCloneしたリモートのブランチを、ローカルに登録することができました。


###ローカルのブランチを基にしたブランチをローカルに作ってリモートに登録
Git Bash上だけで完結させることが可能です。

基となるローカルのブランチに作業ブランチを移します。
一例として、ローカルのmasterを基に作ります。

作業ブランチをmasterに
git checkout master

ブランチを作成してチェックアウトします。

ブランチを作成してチェックアウト
git checkout -b 作りたいブランチの名前

これでローカルにブランチを作成したついでに作業ブランチを切り替えることができました。

git branch -aを行うと確認できます。

GitLabCheckOut.PNG

最後に作成したローカルのブランチをリモートにPushします。

先程作成したブランチをリモートにPush
git push -u origin 先程作成したローカルのブランチ名

これで、リモートにローカルのブランチを登録できました。


###リモートのブランチを基にしたブランチをローカルに作ってリモートに登録

こちらもGit Bashだけで完結させるパターンです。

みんなで作業しているリモートのmasterブランチを
ローカルに作業用ブランチとして持ってくる工程なので、
今後チーム開発する際に、これは結構使いそうな気がします。(そうでもない?)

基本的にGitLab上でブランチを作成した後の作業と さほど変わりませんが、
このやり方は最後にリモートにPushする必要があります。

ローカルにブランチ作成、ついでにチェックアウト
git checkout -b ローカルに作成するブランチ名 origin/リモートのブランチ名
リモートにPush
git push -u origin 作成したブランチ名

##いよいよMargeRequest

MargeRequest自体はGUIでの操作なので楽勝です。(私がCUI苦手なだけですが、、、)

マージしたいブランチを選択した状態で、
プロジェクトの画面からCreate merge requestを選択します。

GitLabCreateMerge.PNG


※どのブランチをマージするかは下記画像箇所から変更できます。
ChangeBranch.PNG


後は適当にタイトルやら内容やらを書いてRequestを送ります。

GitLabMR.png

本来はレビュー担当者がコードの差分を確認してマージするのだと思いますが、
練習なのでそのままMargeしてみます。緑のMargeを押せばOKです。

GitlabMargeFinish.PNG

無事マージ完了です。

全く差分の無いブランチをマージしようとすると"まだ何も変更ないよ"みたいな説明文がでます。

##ブランチを消す
練習で何回もブランチ作っては消してを繰り返したので消し方もメモしときます。

###リモートブランチ削除

リモートのブランチ削除
git push --delete origin リモートのブランチ名

###ローカルブランチ削除

ローカルのブランチ削除
git branch -D ローカルのブランチ名

###GitLab上でリモートブランチを消した場合

ただのgit fetchでは反映されませんでした。

ローカルに消えたリモートブランチを反映
git fetch -p

##偉大な参考リンク様

リモートで削除済みのブランチをローカルからも削除する
git コマンド branchの作り方
Gitのリモートブランチを削除するまとめ
Gitでローカルブランチを削除する

7
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?