バナー画像

GitHubとGitLabの違いを比較しています。

GitHubとGitLabの違い

GitHubもGitLabも、どちらもGit機能を使ったソースコードのホスティングサービスです。バージョン管理や自動ビルド、デプロイなどをおこなうことが可能です。ソースコードをホスティングすることで、複数人での開発で開発者同士が協業してコードをレビューしあい競合の内容ソースをマージして開発をおこなうことができます。

GitHubは2021年にリポジトリ数が1億9,000万件を超えました。また、2021年時点でユーザー数は5,600万人以上となっています。一方、GitLabは2017年時点のユーザ数は10万人、その後、ユーザ数は公開されていないようです。規模でいうと、ダントツにGitHubが大きいことになります。

GitHubはマイクロソフト社が運営しているGitサービスです。2010年にはGitHub社により運営がはじまりましたが、2018年にマイクロソフト社が買収しました。商用プラントオープンソースプロジェクト向けの無料アカウントを提供していて、プライベートリポジトリも無料提供しています。GitHubはクラウド上で運営されるサービスです。

GitLabは、GitLab社が運営するGitサービスです。GitHubと違って、Saas型サービスと、サーバにインストールするセルフマネージドタイプのサービスがあります。Saas、セルフマネージドともにFreeプランは料金無料、グループ向け機能を備えたPremium、Ultimateプランは有料となっています。

GitLabの特徴は、CI/CD

GitHubと比較したGitLabの優位性のひとつは、継続的インテグレーション/デリバリーです。コミット済みコードの自動テスト、自動ビルド、自動デリバリー(デプロイ)をおこなうために、GitLab独自のCIが無料で提供されています。外部のCIサービスを使用する必要はないんですね。既にCIを導入している場合は、Jenkins、Codeshipなどとの統合も可能です。

GitLabは競合他社よりも早い段階からDevOps市場に対応していて、開発とDevOpsの取り組みの依存関係を把握できる運用ダッシュボードを提供しています。DevOpsとは、開発と運用を組み合わせた開発手法で、コード、ビルド、テスト、パッケージ、リリースまでの流れを自動化し、迅速にソフトウェアを提供するためのものです。

ビルドやテストをおこなうために、コンテナ環境を自動起動して専用の環境で、自動ビルドや自動テストをおこなうんですね。旧来の開発のように、「テストチーム」や「ビルドチーム」、「リリースチーム」などの人の手を介さないため、効率的な開発が可能です。

GitLabが、Java開発者の主要リポジトリとして人気がある理由は、Java関連のCI/CDが充実しているからかも知れませんね。

一方GitHubでは、デプロイプラットフォームが付属しておらず、CI/CDを実現するには追加のアプリケーションが必須でした。2019年にGitHub Actionsがリリースされ、ある程度CI/CDへ対応してきました。

GitHubとGitLabの価格を比較

GitLabの価格は以下の通り。CI/CDの実行回数によって、より高価なプランを選択するような価格体系になっています。

GitHubの価格は以下の通り。GitLabに比べると、アクション(CI/CD)の回数に対して料金が割安となっていて、利用できるストレージサイズも大きいです。

GitLabのCI/CDは値段が高い分、高機能といえるでしょう。しかし、JenkinsなどのCI/CD外部アプリケーションを使う場合、GitLabを使うメリットは薄れるかも知れません。

GitHubとGitLabの環境構築を比較

GitHubはウェブベースのサービスなので、サーバ構築などの作業は必要ありません。また、バックアップや障害時の切り替えなども運営サイドでおこなってくれます。GitHubには、GitHub Enterprise Serverというオンプレミス用のサービスがありますが、AWSなどの主要クラウド環境用にもインスタンスイメージが提供されています。

GitLabは、クラウドタイプのSaasを選べばサーバ運用は運営サイド任せにでき、インストールタイプのGitLab Serverを利用する場合はバックアップや障害時対応を人の対応含めて運用していく必要があります。

お手軽さでは圧倒的にGitHubなのですが、学校や企業のセキュリティポリシー的に、「クラウド上にソースコードを保管するのは不可」という場合は、自動的に組織内にサーバを設置し、GitLabサービスをインストールするということになるでしょう。

GitHubとGitLabのコマンドを比較

GitHubもGitLabもともに、Gitコマンドでクローンやプル、プッシュ、コミットなどが可能です。しかし、git管理の全機能を使えるわけではなく、プルリクエストやイシューの管理はウェブにログインして操作する必要がありました。

GitHubには、git管理全般をCLIで実行できる、ghコマンドが提供されています。gitコマンドでは実現できない機能が実行可能です。以下は、イシューのリストを表示した例です。

$ gh issue list

Showing 30 of 324 open issues in google/material-design-icons

#1196 Include icon metadata in this repo about 15 hours ago
#1195 Standard Icons for Water Quality (pH, EC, ORP... about 1 day ago
#1194 Handshake icon about 1 day ago
#1193 post_add icon doesn't appear properly about 6 days ago
#1192 Touch gestures about 19 days ago
#1191 Spiritual Icon about 20 days ago
#1190 Bug with icons name about 21 days ago
#1189 How to define specific version on link about 29 days ago

【関連記事】
GitHubのCLI(コマンドラインインタフェース)はghコマンド プルリクエストやissue操作にも対応

GitLabにも、同様のlabコマンドという非公式のCLIがあります。

関連)zaquestion/lab: Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab

ただし、利用者もあまりいないようでネット上にもあまり情報がありません。業務で使用するのは避けたほうが良いかも知れませんね。

関連)【Gitlab】コマンドで簡単操作、labコマンドを使ってみた【大奮闘】 – unrealMan’s blog

まとめ

ポテパンダの一言メモ
  • GitHubもGitLabもソースのホスティングとgit管理をするためのサービス
  • GitHubは、サーバ不要でユーザ数作成リポジトリ数もダントツに多い
  • GitLabは、CI/CDの機能にすぐれ、組織内のサーバにインストールして利用することができる

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。