GitLabでブランチ切ってcommitしてマージリクエストする

GitでcommitしてpushしてGitLabで確認してみる」では、masterブランチにコミットしてpushしました。

今回は、ブランチを切って、そこで作業してマージリクエストしてみます。

GitLabのmasterブランチをプロテクトする

ここまでの検証をするために、masterブランチをdeveloperでもpushできるようにプロテクト解除ていました。それをもとに戻します。(masterブランチをプロテクトする)

手順は「GitLabでプロジェクト(リポジトリ)を作成してみる」の「masterブランチのプロテクトを解除」の逆なので、この記事を見てください。

GitLabでブランチを作成

GitLabのプロジェクトのサイドメニューの”Repository/Branches”を選び、”New branch”を選びます。

gitlabのブランチ作成

作成ページになるので、

  • Create from = master
  • Branch name = 使いたいブランチ名(ここではfeature_bash)

を入力して”Create branch”を選びます。

ローカルリポジトリにfetch

GitLabで作成したブランチ”feature_bash”をローカルブランチにfetchします。

[~/tmp/monkey/projectx] $ git fetch origin feature_bash
From http://gitlab.monkey.local/mygrp/projectx
 * branch            feature_bash -> FETCH_HEAD
 * [new branch]      feature_bash -> origin/feature_bash

[~/tmp/monkey/projectx] $ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature_bash
  remotes/origin/master

ローカルリポジトリにリモートブランチ”remotes/origin/feature_bash”が出来ています。

ローカルブランチを作成

ローカルリポジトリの”remotes/origin/feature_bash”からローカルブランチを作成します。

[~/tmp/monkey/projectx] $ git branch feature_bash origin/feature_bash
Branch 'feature_bash' set up to track remote branch 'feature_bash' from 'origin'.

[~/tmp/monkey/projectx] $ git branch -a
  feature_bash
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature_bash
  remotes/origin/master

ローカルブランチ”feature_bash”が出来ました。

作業ブランチを変える

まだ、masterが作業ブランチになっているので、切り替えます。

[~/tmp/monkey/projectx] $ git checkout feature_bash
Switched to branch 'feature_bash'
Your branch is up to date with 'origin/feature_bash'.

[~/tmp/monkey/projectx] $ git branch -a
* feature_bash
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature_bash
  remotes/origin/master

“*”がfeature_bashについて、作業ブランチが切り替えれました。

作業からコミット

確認のため、2つコミットします。

1つ目はファイル追加です。

[~/tmp/monkey/projectx] $ touch monkey.sh
[~/tmp/monkey/projectx] $ git add monkey.sh
[~/tmp/monkey/projectx] $ git commit -m "bashスクリプトファイル追加"

2つ目はファイルにechoを実装です。

[~/tmp/monkey/projectx] $ echo "echo 'I am monkey.'" > monkey.sh
[~/tmp/monkey/projectx] $ git add monkey.sh
[~/tmp/monkey/projectx] $ git commit -m "bashスクリプト実装完"

コミットログを見てみます。

[~/tmp/monkey/projectx] $ git log --oneline
9018d4c (HEAD -> feature_bash) bashスクリプト実装完
6ecac3f bashスクリプトファイル追加
8ce770f (origin/master, origin/feature_bash, origin/HEAD, master) 補足を追加。
6eaee15 自己紹介を追加
1100259 管理者でREADME.mdを追加。

feature_bashがmasterから2つ進んでいます。

gitサーバへ反映

GitLab上のリモートリポジトリへpushします。

[~/tmp/monkey/projectx] $ git push origin feature_bash

Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 604 bytes | 604.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for feature_bash, visit:
remote:   http://gitlab.monkey.local/mygrp/projectx/merge_requests/new?merge_request%5Bsource_branch%5D=feature_bash
remote:
To http://gitlab.monkey.local/mygrp/projectx.git
   8ce770f..9018d4c  feature_bash -> feature_bash

ログにも、マージリクエスト方法のメッセージが出てますね。

マージリクエストする

GitLabへdeveloperの”monkey”でアクセスして、GitLabのプロジェクトのサイドメニューの”Repository/Branches”を選びます。
すると、先程作成した”feature_bash”に”Merge request”ボタンが出来ているので選択してリクエストを出します。

gitlabのマージリクエスト

マージリクエストでは、下記のようにいろんな情報を書き込めます。

gitlabのマージリクエスト

今回は、マージリクエストの依頼先(Assignee)は空にしておきます。実際のプロジェクトでも誰が作業するか決まっていないけどリクエストするほうが多いかと思います。リクエストすれば、サイドメニューの”Merge requests”に上がるので、権限のある人達で分担すれば良いです。

また、マイルストーンやラベルなどありますが、GitLabのこういったDevOps系の機能は別途調べていきたいと思います。

とりあえずこの状態で”Submit merge request”します。

権限ある人でマージ

今回の環境では、管理者”root”しかいないので、管理者でログインして、再度メニューを見ると”Merge Requests”に1件あることが確認できます。

それを選択すると一覧がでるので、先程作ったマージリクエストを選択します。
権限があれば、”Merge”ボタンが押せ、マージできます。実際は内容は確認する必要があります。

gitlabのマージ

マージ後、コミットグラフ見ると反映されています。

gitlabのコミットグラフ

まとめ

今回はGitLab操作がメインですが、ブランチを作ってマージリクエストしました。

GitLabまとめ記事へのリンク

GitLabの他のネタを纏めています。参考になれば嬉しいです。

↓↓↓GitLabまとめページはこちら↓↓↓
【保存版】GitLabまとめ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする