GitLabの実践的な使い方:チーム開発編

この記事では、複数人/複数のチームで同時に作業を進めるような開発現場を想定し、GitとGitLabの具体的な運用フローを解説します。

1. 全体の開発フロー

  1. GitLabでdevelopブランチを作成し、基準とする(※mainブランチは安定版として扱う)
  2. 各メンバーが個別の作業ブランチ(例:feature/xxxxxxxx)を作成
  3. 定期的にorigin/develop(作業ブランチ)を取り込みながら作業
  4. 作業完了後、GitLabでマージリクエスト(MR)を作成
  5. レビュー・承認後にdevelopブランチへマージ
作業フロー
  • STEP 1
    リポジトリを作成(管理側が対応)

    プロジェクトの基となるデータを作成

  • STEP 2
    ローカルにリポジトリをクローン or プル

    クローン:ローカルで作業するためにリポジトリを持ってくる
    プル:リモートの変更をローカルに取り込む
    ※初期ダウンロードには時間がかかる場合があります。

  • STEP 3
    ファイルを作成・編集する

    まずはじめに、作業ブランチを切るようにしましょう!
    複数のチームで対応する場合、チームマージ用のブランチを作成しましょう。
    ※developブランチのまま作業すると、マージの際に競合が発生する他、履歴管理が正常にできません。

  • STEP 4
    リモートリポジトリの更新をローカルに反映させる

    コンフリクト(競合)があれば、解消する

  • STEP 5
    作業ブランチの変更内容をリモートにアップロード

    チームごとの親ブランチにマージするための準備

  • STEP 6
    MR(マージリクエスト)を作成

    親ブランチにマージする際に行うレビューの準備

  • STEP 7
    レビューとマージ

    既存ブランチとの差分を出して、レビュー
    すべてOKなら、マージ

※作業時は、STEP2〜7を繰り返すイメージです。

2. 個人の作業フロー

1. 作業ブランチを作成

git checkout -b feature/kinoumei

2. 作業を進めてコミット
 ブランチ内の変更箇所がある場合、適宜コミット(コミットルールはチーム依存)

git add .

git commit -m "コミットコメント"

補足:現在の変更箇所を確認する際は下記コマンドを実行

git status

3. developブランチを取り込む
 他のメンバーの変更がdevelopにマージされている可能性があるため、
 作業前・作業中・プッシュ前に以下を実行

作業前(プル)

git pull origin develop

作業中・プッシュ前(ローカルマージ)

git fetch origin develop

git merge origin/develop

4. 競合があれば修正
 コンフリクトが出た場合はファイルを手動で修正し、下記コマンドでコミット

git add 修正ファイル

git commit -m "<コミットコメント>"

5. リモートにプッシュ

git push origin feature/xxxxxxxx

6. GitLabでマージリクエスト(MR)作成
 WebGUI操作

6. マージ後、ブランチを削除

git branch -d feature/xxxxxxxx (ローカル場合)

git push origin --delete feature/xxxxxxxx (リモートの場合 ※GUI操作でも可)

3. バイナリファイルが多いプロジェクトでの注意点

  • バイナリは差分比較ができず、競合が起きやすい
  • Git LFS(Large File Storage)の導入を検討
    git lfs install
    git lfs track "*.png"
  • バイナリファイルは担当制で更新し、同時変更を避ける

4. 開発運用のコツ(ベストプラクティス)

項目推奨方法
ブランチ命名feature/xxx, bugfix/xxx, ect…
developの取り込みfetch merge or rebaseで同期
マージ前最新のdevelopを取り込み、競合を解決してからPush
レビューGitLabのMR機能を使ってチームで確認

5. まとめ

GitとGitLabを活用したチーム開発では、「developを常に最新に保ち、衝突を避ける」ことが円滑な作業のカギとなります。特にバイナリファイルを多く扱う現場では、早めの同期と明確な担当分担が重要です。

本記事がチームでのバージョン管理をスムーズに進める一助となれば幸いです。

タイトルとURLをコピーしました