Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

独自ルール:Merge requestを使ったグループプロジェクト

自分とこの環境下におけるGit & GitLabレクチャー

独自ルール:多人数開発のためのGitLab・タグ・ブランチにてブランチが使えることが前提.

多人数で一つのプログラムを作成・修正していく際に,作成分・修正分をメインブランチに取り入れてもらうことをMergeといい,「取り入れて」とリクエストすることをMerge requestという.
基本的な流れは以下のとおり.

プログラム作成・修正する側の流れ:メンバー全員対象

  1. ローカルでブランチを作成し,編集
  2. GitLabのプロジェクトスペースにブランチ名でpush
  3. GitLab上でMerge request

プロジェクト管理者の流れ:M1以上?

  1. GitLab上でMerge requestを確認
  2. Merge内容を確認しつつ必要に応じて受け入れ
    • 全部Mergeすることも出来るし一部Mergeすることも可

前提

プロジェクトは作成されているものとする.つまり,誰かが自分のためのプロジェクトを個人プロジェクトとして作成しており,グループで共有したくなり,グループプロジェクトとするためにforkで持ってきている状況を想定する.

1からプロジェクトを作成する場合には,以下の情報をもとに各自...頑張る.

プログラム作成・修正する側の流れ

ブランチ作成・プログラム作成・修正

git cloneなどでプロジェクトのメインブランチがローカルにある状態からスタート

  1. git checkout -b [branch名]などでブランチ作成,切り替え
    • [branch名]
      • 機能追加の場合の例
        • develop-名前-001(通し番号)-機能名
      • バグ修正などの例
        • hotfix-名前-001(通し番号)-修正内容
  2. 修正,コンパイルして動作確認
  3. git push origin [branch名]
      • git push origin hotfix-hoge-001-cure-hage
      • originにdevelop-...のブランチ作成しアップロード
  4. GitLabにログイン,作成したブランチに移動
    • 赤丸の部分をクリックするとブランチを選択できる pre-merge-on-gitlab.jpg
  5. Merge request:マージのお願いの準備 merge-buttom-on-gitlab.jpg
  6. Merge requestを実行
    • ブランチに注意
      • 個人プロジェクトからforkした場合,hotfix-...から個人プロジェクトへのマージリクエストになっている.「ブランチの変更」を選択し,グループプロジェクトのメインブランチに変更しなければならない.
    • Assigneer
      • Assign to meを押して自分にしておく
    • Submitマージリクエスト
      • 設定がおわれば当該ボタンを押す merge-request-on-gitlab.jpg

プロジェクト管理者の流れ

Merge requestがあればGitLab上に表示されるので内容を確認しつつ必要に応じて結合する.

  1. GitLab上のMerge request確認
    • マージリクエストの数字が増えている.クリックし内容を確認する. after-merge-request-on-gitlab.jpg
  2. Merge request一覧からmergeするものを選択 select-merge-request-on-gitlab.jpg
  3. Request内容が表示されるので確認,Mergeボタン押下により結合実行 execute-merge-request-on-gitlab.jpg

プログラム作成・修正する側の流れ

以下のコマンドを用いて,メインブランチの最新版を取り込んでおく.Merge requestを出した時だけでなく,常日頃定期的に実行しておく.誰がいつMerge requestを出し,結合されるか分からないので.

terminal
$ git pull origin master
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away