Chapter 10: GitLab との違い
GitHub と GitLab の比較と使い分け
Chapter 10: GitLab との違い
10.1 GitHub vs GitLab 比較
GitHub と GitLab はどちらも Git リポジトリをホスティングするサービスですが、それぞれ異なる強みを持っています。現場では両方に遭遇することがあるため、違いを理解しておきましょう。
基本比較
| 項目 | GitHub | GitLab |
|---|---|---|
| 運営 | Microsoft傘下 | GitLab Inc. |
| 設立 | 2008年 | 2011年 |
| 特徴 | 最大規模のOSSコミュニティ | 統合DevOpsプラットフォーム |
| 無料プラン | パブリック・プライベート両方 | パブリック・プライベート両方 |
| セルフホスト | 要有料プラン(GitHub Enterprise) | 無料のCommunity Editionあり |
| CI/CD | GitHub Actions | GitLab CI/CD(組み込み) |
| Issue管理 | Issues + Projects | Issues + Boards |
| コードレビュー | Pull Request | Merge Request |
セルフホストの重要性
GitLabが企業で広く使われる最大の理由のひとつがセルフホスト対応です。
金融・医療・官公庁など社外にコードを出せない業種では、社内サーバーで GitLab を運用するケースが非常に多いです。
10.2 GitLab の基本操作
GitLabの基本操作はGitHubと非常に似ています。ここでは主な違いに絞って説明します。
プロジェクトの作成
- GitLab にログイン(
gitlab.comまたは社内URL) - 「New project」をクリック
- プロジェクト名・公開設定を選択
- 「Create project」をクリック
リモートとの接続
GitLabでの操作は GitHub と同様です。URLが gitlab.com になるだけです。
# GitLab のリモートを追加
git remote add origin git@gitlab.com:yamada/my-project.git
# プッシュ
git push -u origin mainGitLab の独自機能
GitLabはCI/CDが最初から組み込まれており、.gitlab-ci.yml というファイルを追加するだけで自動テスト・デプロイが設定できます。
# .gitlab-ci.yml の例
stages:
- test
- deploy
run-tests:
stage: test
script:
- npm install
- npm test
deploy-production:
stage: deploy
script:
- echo "デプロイ実行"
only:
- main10.3 Merge Request(GitLab 版の PR)
GitLab では Pull Request のことを Merge Request(MR) と呼びます。機能はほぼ同じです。
MR の作成
# ブランチを作成して作業
git checkout -b feature/user-profile
git add .
git commit -m "ユーザープロフィール機能を追加"
git push origin feature/user-profileGitLabにアクセスすると「Create merge request」ボタンが表示されます。
GitHub PR と GitLab MR の比較
| 機能 | GitHub PR | GitLab MR |
|---|---|---|
| 作成 | GitHub Web UI | GitLab Web UI |
| レビュー依頼 | Reviewers | Reviewers |
| 承認機能 | Approve | Approve(必要承認数を設定可) |
| 自動マージ | Auto-merge | Auto-merge |
| CI 結果表示 | Actions 結果 | パイプライン結果 |
| ドラフト | Draft PR | Draft MR |
GitLabでは承認者数の最小値をプロジェクト設定で強制できます(例: 必ず2人以上が承認しないとマージできない)。厳格なレビュープロセスが求められる企業でよく使われます。
10.4 組織での使い分け
実際の現場では、以下の傾向があります。
現場でよくある構成
スタートアップ・Web企業: GitHub が多い
- OSSエコシステムとの連携
- GitHub Copilot による AI コーディング支援
- GitHub Actions での豊富なマーケットプレイス
大企業・金融・官公庁: GitLab セルフホストが多い
- 社内ネットワーク内で完結
- コンプライアンス対応
- 統合 DevOps プラットフォームとして使う
どちらを学べばいい?
まずは GitHub を学ぶことをおすすめします。
理由:
- GitHubの方が学習リソース(記事・動画・書籍)が豊富
- OSSのほとんどがGitHubにある
- 操作を覚えれば GitLab にも応用が効く
GitLabの操作はGitHubとほぼ同じです。GitHubをしっかり習得すれば、GitLabも問題なく使えます。
まとめ
| 項目 | GitHub | GitLab |
|---|---|---|
| 主な用途 | OSS・スタートアップ | 企業・セルフホスト |
| PRの呼び名 | Pull Request (PR) | Merge Request (MR) |
| CI/CD | GitHub Actions | GitLab CI/CD(組み込み) |
| 無料セルフホスト | 不可(Enterprise要) | 可能(CE版) |
| まず学ぶなら | こちら | GitHubの次に |
次のステップ: ブランチ運用 で実践的なチーム開発ワークフローを学びます。